drm/i915: Use drm_i915_gem_object as the preferred type
[deliverable/linux.git] / drivers / gpu / drm / i915 / i915_trace.h
1 #if !defined(_I915_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ)
2 #define _I915_TRACE_H_
3
4 #include <linux/stringify.h>
5 #include <linux/types.h>
6 #include <linux/tracepoint.h>
7
8 #include <drm/drmP.h>
9 #include "i915_drv.h"
10
11 #undef TRACE_SYSTEM
12 #define TRACE_SYSTEM i915
13 #define TRACE_SYSTEM_STRING __stringify(TRACE_SYSTEM)
14 #define TRACE_INCLUDE_FILE i915_trace
15
16 /* object tracking */
17
18 TRACE_EVENT(i915_gem_object_create,
19
20 TP_PROTO(struct drm_i915_gem_object *obj),
21
22 TP_ARGS(obj),
23
24 TP_STRUCT__entry(
25 __field(struct drm_i915_gem_object *, obj)
26 __field(u32, size)
27 ),
28
29 TP_fast_assign(
30 __entry->obj = obj;
31 __entry->size = obj->base.size;
32 ),
33
34 TP_printk("obj=%p, size=%u", __entry->obj, __entry->size)
35 );
36
37 TRACE_EVENT(i915_gem_object_bind,
38
39 TP_PROTO(struct drm_i915_gem_object *obj, u32 gtt_offset, bool mappable),
40
41 TP_ARGS(obj, gtt_offset, mappable),
42
43 TP_STRUCT__entry(
44 __field(struct drm_i915_gem_object *, obj)
45 __field(u32, gtt_offset)
46 __field(bool, mappable)
47 ),
48
49 TP_fast_assign(
50 __entry->obj = obj;
51 __entry->gtt_offset = gtt_offset;
52 __entry->mappable = mappable;
53 ),
54
55 TP_printk("obj=%p, gtt_offset=%08x%s",
56 __entry->obj, __entry->gtt_offset,
57 __entry->mappable ? ", mappable" : "")
58 );
59
60 TRACE_EVENT(i915_gem_object_change_domain,
61
62 TP_PROTO(struct drm_i915_gem_object *obj, uint32_t old_read_domains, uint32_t old_write_domain),
63
64 TP_ARGS(obj, old_read_domains, old_write_domain),
65
66 TP_STRUCT__entry(
67 __field(struct drm_i915_gem_object *, obj)
68 __field(u32, read_domains)
69 __field(u32, write_domain)
70 ),
71
72 TP_fast_assign(
73 __entry->obj = obj;
74 __entry->read_domains = obj->base.read_domains | (old_read_domains << 16);
75 __entry->write_domain = obj->base.write_domain | (old_write_domain << 16);
76 ),
77
78 TP_printk("obj=%p, read=%04x, write=%04x",
79 __entry->obj,
80 __entry->read_domains, __entry->write_domain)
81 );
82
83 TRACE_EVENT(i915_gem_object_get_fence,
84
85 TP_PROTO(struct drm_i915_gem_object *obj, int fence, int tiling_mode),
86
87 TP_ARGS(obj, fence, tiling_mode),
88
89 TP_STRUCT__entry(
90 __field(struct drm_i915_gem_object *, obj)
91 __field(int, fence)
92 __field(int, tiling_mode)
93 ),
94
95 TP_fast_assign(
96 __entry->obj = obj;
97 __entry->fence = fence;
98 __entry->tiling_mode = tiling_mode;
99 ),
100
101 TP_printk("obj=%p, fence=%d, tiling=%d",
102 __entry->obj, __entry->fence, __entry->tiling_mode)
103 );
104
105 DECLARE_EVENT_CLASS(i915_gem_object,
106
107 TP_PROTO(struct drm_i915_gem_object *obj),
108
109 TP_ARGS(obj),
110
111 TP_STRUCT__entry(
112 __field(struct drm_i915_gem_object *, obj)
113 ),
114
115 TP_fast_assign(
116 __entry->obj = obj;
117 ),
118
119 TP_printk("obj=%p", __entry->obj)
120 );
121
122 DEFINE_EVENT(i915_gem_object, i915_gem_object_clflush,
123
124 TP_PROTO(struct drm_i915_gem_object *obj),
125
126 TP_ARGS(obj)
127 );
128
129 DEFINE_EVENT(i915_gem_object, i915_gem_object_unbind,
130
131 TP_PROTO(struct drm_i915_gem_object *obj),
132
133 TP_ARGS(obj)
134 );
135
136 DEFINE_EVENT(i915_gem_object, i915_gem_object_destroy,
137
138 TP_PROTO(struct drm_i915_gem_object *obj),
139
140 TP_ARGS(obj)
141 );
142
143 /* batch tracing */
144
145 TRACE_EVENT(i915_gem_request_submit,
146
147 TP_PROTO(struct drm_device *dev, u32 seqno),
148
149 TP_ARGS(dev, seqno),
150
151 TP_STRUCT__entry(
152 __field(u32, dev)
153 __field(u32, seqno)
154 ),
155
156 TP_fast_assign(
157 __entry->dev = dev->primary->index;
158 __entry->seqno = seqno;
159 i915_trace_irq_get(dev, seqno);
160 ),
161
162 TP_printk("dev=%u, seqno=%u", __entry->dev, __entry->seqno)
163 );
164
165 TRACE_EVENT(i915_gem_request_flush,
166
167 TP_PROTO(struct drm_device *dev, u32 seqno,
168 u32 flush_domains, u32 invalidate_domains),
169
170 TP_ARGS(dev, seqno, flush_domains, invalidate_domains),
171
172 TP_STRUCT__entry(
173 __field(u32, dev)
174 __field(u32, seqno)
175 __field(u32, flush_domains)
176 __field(u32, invalidate_domains)
177 ),
178
179 TP_fast_assign(
180 __entry->dev = dev->primary->index;
181 __entry->seqno = seqno;
182 __entry->flush_domains = flush_domains;
183 __entry->invalidate_domains = invalidate_domains;
184 ),
185
186 TP_printk("dev=%u, seqno=%u, flush=%04x, invalidate=%04x",
187 __entry->dev, __entry->seqno,
188 __entry->flush_domains, __entry->invalidate_domains)
189 );
190
191 DECLARE_EVENT_CLASS(i915_gem_request,
192
193 TP_PROTO(struct drm_device *dev, u32 seqno),
194
195 TP_ARGS(dev, seqno),
196
197 TP_STRUCT__entry(
198 __field(u32, dev)
199 __field(u32, seqno)
200 ),
201
202 TP_fast_assign(
203 __entry->dev = dev->primary->index;
204 __entry->seqno = seqno;
205 ),
206
207 TP_printk("dev=%u, seqno=%u", __entry->dev, __entry->seqno)
208 );
209
210 DEFINE_EVENT(i915_gem_request, i915_gem_request_complete,
211
212 TP_PROTO(struct drm_device *dev, u32 seqno),
213
214 TP_ARGS(dev, seqno)
215 );
216
217 DEFINE_EVENT(i915_gem_request, i915_gem_request_retire,
218
219 TP_PROTO(struct drm_device *dev, u32 seqno),
220
221 TP_ARGS(dev, seqno)
222 );
223
224 DEFINE_EVENT(i915_gem_request, i915_gem_request_wait_begin,
225
226 TP_PROTO(struct drm_device *dev, u32 seqno),
227
228 TP_ARGS(dev, seqno)
229 );
230
231 DEFINE_EVENT(i915_gem_request, i915_gem_request_wait_end,
232
233 TP_PROTO(struct drm_device *dev, u32 seqno),
234
235 TP_ARGS(dev, seqno)
236 );
237
238 DECLARE_EVENT_CLASS(i915_ring,
239
240 TP_PROTO(struct drm_device *dev),
241
242 TP_ARGS(dev),
243
244 TP_STRUCT__entry(
245 __field(u32, dev)
246 ),
247
248 TP_fast_assign(
249 __entry->dev = dev->primary->index;
250 ),
251
252 TP_printk("dev=%u", __entry->dev)
253 );
254
255 DEFINE_EVENT(i915_ring, i915_ring_wait_begin,
256
257 TP_PROTO(struct drm_device *dev),
258
259 TP_ARGS(dev)
260 );
261
262 DEFINE_EVENT(i915_ring, i915_ring_wait_end,
263
264 TP_PROTO(struct drm_device *dev),
265
266 TP_ARGS(dev)
267 );
268
269 TRACE_EVENT(i915_flip_request,
270 TP_PROTO(int plane, struct drm_i915_gem_object *obj),
271
272 TP_ARGS(plane, obj),
273
274 TP_STRUCT__entry(
275 __field(int, plane)
276 __field(struct drm_i915_gem_object *, obj)
277 ),
278
279 TP_fast_assign(
280 __entry->plane = plane;
281 __entry->obj = obj;
282 ),
283
284 TP_printk("plane=%d, obj=%p", __entry->plane, __entry->obj)
285 );
286
287 TRACE_EVENT(i915_flip_complete,
288 TP_PROTO(int plane, struct drm_i915_gem_object *obj),
289
290 TP_ARGS(plane, obj),
291
292 TP_STRUCT__entry(
293 __field(int, plane)
294 __field(struct drm_i915_gem_object *, obj)
295 ),
296
297 TP_fast_assign(
298 __entry->plane = plane;
299 __entry->obj = obj;
300 ),
301
302 TP_printk("plane=%d, obj=%p", __entry->plane, __entry->obj)
303 );
304
305 TRACE_EVENT(i915_reg_rw,
306 TP_PROTO(int cmd, uint32_t reg, uint64_t val, int len),
307
308 TP_ARGS(cmd, reg, val, len),
309
310 TP_STRUCT__entry(
311 __field(int, cmd)
312 __field(uint32_t, reg)
313 __field(uint64_t, val)
314 __field(int, len)
315 ),
316
317 TP_fast_assign(
318 __entry->cmd = cmd;
319 __entry->reg = reg;
320 __entry->val = (uint64_t)val;
321 __entry->len = len;
322 ),
323
324 TP_printk("cmd=%c, reg=0x%x, val=0x%llx, len=%d",
325 __entry->cmd, __entry->reg, __entry->val, __entry->len)
326 );
327
328 #endif /* _I915_TRACE_H_ */
329
330 /* This part must be outside protection */
331 #undef TRACE_INCLUDE_PATH
332 #define TRACE_INCLUDE_PATH .
333 #include <trace/define_trace.h>
This page took 0.107038 seconds and 5 git commands to generate.