gpu: update midgard r21p0 kernel driver
[GitHub/LineageOS/G12/android_hardware_amlogic_kernel-modules_mali-driver.git] / midgard / r16p0 / kernel / drivers / gpu / arm / midgard / mali_timeline.h
1 /*
2 *
3 * (C) COPYRIGHT 2012-2016 ARM Limited. All rights reserved.
4 *
5 * This program is free software and is provided to you under the terms of the
6 * GNU General Public License version 2 as published by the Free Software
7 * Foundation, and any use by you of this program is subject to the terms
8 * of such GNU licence.
9 *
10 * A copy of the licence is included with the program, and can also be obtained
11 * from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
12 * Boston, MA 02110-1301, USA.
13 *
14 */
15
16
17
18
19
20 #undef TRACE_SYSTEM
21 #define TRACE_SYSTEM mali_timeline
22
23 #if !defined(_MALI_TIMELINE_H) || defined(TRACE_HEADER_MULTI_READ)
24 #define _MALI_TIMELINE_H
25
26 #include <linux/tracepoint.h>
27
28 TRACE_EVENT(mali_timeline_atoms_in_flight,
29
30 TP_PROTO(u64 ts_sec,
31 u32 ts_nsec,
32 int tgid,
33 int count),
34
35 TP_ARGS(ts_sec,
36 ts_nsec,
37 tgid,
38 count),
39
40 TP_STRUCT__entry(
41 __field(u64, ts_sec)
42 __field(u32, ts_nsec)
43 __field(int, tgid)
44 __field(int, count)
45 ),
46
47 TP_fast_assign(
48 __entry->ts_sec = ts_sec;
49 __entry->ts_nsec = ts_nsec;
50 __entry->tgid = tgid;
51 __entry->count = count;
52 ),
53
54 TP_printk("%i,%i.%.9i,%i,%i", CTX_SET_NR_ATOMS_IN_FLIGHT,
55 (int)__entry->ts_sec,
56 (int)__entry->ts_nsec,
57 __entry->tgid,
58 __entry->count)
59 );
60
61
62 TRACE_EVENT(mali_timeline_atom,
63
64 TP_PROTO(u64 ts_sec,
65 u32 ts_nsec,
66 int event_type,
67 int tgid,
68 int atom_id),
69
70 TP_ARGS(ts_sec,
71 ts_nsec,
72 event_type,
73 tgid,
74 atom_id),
75
76 TP_STRUCT__entry(
77 __field(u64, ts_sec)
78 __field(u32, ts_nsec)
79 __field(int, event_type)
80 __field(int, tgid)
81 __field(int, atom_id)
82 ),
83
84 TP_fast_assign(
85 __entry->ts_sec = ts_sec;
86 __entry->ts_nsec = ts_nsec;
87 __entry->event_type = event_type;
88 __entry->tgid = tgid;
89 __entry->atom_id = atom_id;
90 ),
91
92 TP_printk("%i,%i.%.9i,%i,%i,%i", __entry->event_type,
93 (int)__entry->ts_sec,
94 (int)__entry->ts_nsec,
95 __entry->tgid,
96 __entry->atom_id,
97 __entry->atom_id)
98 );
99
100 TRACE_EVENT(mali_timeline_gpu_slot_active,
101
102 TP_PROTO(u64 ts_sec,
103 u32 ts_nsec,
104 int event_type,
105 int tgid,
106 int js,
107 int count),
108
109 TP_ARGS(ts_sec,
110 ts_nsec,
111 event_type,
112 tgid,
113 js,
114 count),
115
116 TP_STRUCT__entry(
117 __field(u64, ts_sec)
118 __field(u32, ts_nsec)
119 __field(int, event_type)
120 __field(int, tgid)
121 __field(int, js)
122 __field(int, count)
123 ),
124
125 TP_fast_assign(
126 __entry->ts_sec = ts_sec;
127 __entry->ts_nsec = ts_nsec;
128 __entry->event_type = event_type;
129 __entry->tgid = tgid;
130 __entry->js = js;
131 __entry->count = count;
132 ),
133
134 TP_printk("%i,%i.%.9i,%i,%i,%i", __entry->event_type,
135 (int)__entry->ts_sec,
136 (int)__entry->ts_nsec,
137 __entry->tgid,
138 __entry->js,
139 __entry->count)
140 );
141
142 TRACE_EVENT(mali_timeline_gpu_slot_action,
143
144 TP_PROTO(u64 ts_sec,
145 u32 ts_nsec,
146 int event_type,
147 int tgid,
148 int js,
149 int count),
150
151 TP_ARGS(ts_sec,
152 ts_nsec,
153 event_type,
154 tgid,
155 js,
156 count),
157
158 TP_STRUCT__entry(
159 __field(u64, ts_sec)
160 __field(u32, ts_nsec)
161 __field(int, event_type)
162 __field(int, tgid)
163 __field(int, js)
164 __field(int, count)
165 ),
166
167 TP_fast_assign(
168 __entry->ts_sec = ts_sec;
169 __entry->ts_nsec = ts_nsec;
170 __entry->event_type = event_type;
171 __entry->tgid = tgid;
172 __entry->js = js;
173 __entry->count = count;
174 ),
175
176 TP_printk("%i,%i.%.9i,%i,%i,%i", __entry->event_type,
177 (int)__entry->ts_sec,
178 (int)__entry->ts_nsec,
179 __entry->tgid,
180 __entry->js,
181 __entry->count)
182 );
183
184 TRACE_EVENT(mali_timeline_gpu_power_active,
185
186 TP_PROTO(u64 ts_sec,
187 u32 ts_nsec,
188 int event_type,
189 int active),
190
191 TP_ARGS(ts_sec,
192 ts_nsec,
193 event_type,
194 active),
195
196 TP_STRUCT__entry(
197 __field(u64, ts_sec)
198 __field(u32, ts_nsec)
199 __field(int, event_type)
200 __field(int, active)
201 ),
202
203 TP_fast_assign(
204 __entry->ts_sec = ts_sec;
205 __entry->ts_nsec = ts_nsec;
206 __entry->event_type = event_type;
207 __entry->active = active;
208 ),
209
210 TP_printk("%i,%i.%.9i,0,%i", __entry->event_type,
211 (int)__entry->ts_sec,
212 (int)__entry->ts_nsec,
213 __entry->active)
214
215 );
216
217 TRACE_EVENT(mali_timeline_l2_power_active,
218
219 TP_PROTO(u64 ts_sec,
220 u32 ts_nsec,
221 int event_type,
222 int state),
223
224 TP_ARGS(ts_sec,
225 ts_nsec,
226 event_type,
227 state),
228
229 TP_STRUCT__entry(
230 __field(u64, ts_sec)
231 __field(u32, ts_nsec)
232 __field(int, event_type)
233 __field(int, state)
234 ),
235
236 TP_fast_assign(
237 __entry->ts_sec = ts_sec;
238 __entry->ts_nsec = ts_nsec;
239 __entry->event_type = event_type;
240 __entry->state = state;
241 ),
242
243 TP_printk("%i,%i.%.9i,0,%i", __entry->event_type,
244 (int)__entry->ts_sec,
245 (int)__entry->ts_nsec,
246 __entry->state)
247
248 );
249 TRACE_EVENT(mali_timeline_pm_event,
250
251 TP_PROTO(u64 ts_sec,
252 u32 ts_nsec,
253 int event_type,
254 int pm_event_type,
255 unsigned int pm_event_id),
256
257 TP_ARGS(ts_sec,
258 ts_nsec,
259 event_type,
260 pm_event_type,
261 pm_event_id),
262
263 TP_STRUCT__entry(
264 __field(u64, ts_sec)
265 __field(u32, ts_nsec)
266 __field(int, event_type)
267 __field(int, pm_event_type)
268 __field(unsigned int, pm_event_id)
269 ),
270
271 TP_fast_assign(
272 __entry->ts_sec = ts_sec;
273 __entry->ts_nsec = ts_nsec;
274 __entry->event_type = event_type;
275 __entry->pm_event_type = pm_event_type;
276 __entry->pm_event_id = pm_event_id;
277 ),
278
279 TP_printk("%i,%i.%.9i,0,%i,%u", __entry->event_type,
280 (int)__entry->ts_sec,
281 (int)__entry->ts_nsec,
282 __entry->pm_event_type, __entry->pm_event_id)
283
284 );
285
286 TRACE_EVENT(mali_timeline_slot_atom,
287
288 TP_PROTO(u64 ts_sec,
289 u32 ts_nsec,
290 int event_type,
291 int tgid,
292 int js,
293 int atom_id),
294
295 TP_ARGS(ts_sec,
296 ts_nsec,
297 event_type,
298 tgid,
299 js,
300 atom_id),
301
302 TP_STRUCT__entry(
303 __field(u64, ts_sec)
304 __field(u32, ts_nsec)
305 __field(int, event_type)
306 __field(int, tgid)
307 __field(int, js)
308 __field(int, atom_id)
309 ),
310
311 TP_fast_assign(
312 __entry->ts_sec = ts_sec;
313 __entry->ts_nsec = ts_nsec;
314 __entry->event_type = event_type;
315 __entry->tgid = tgid;
316 __entry->js = js;
317 __entry->atom_id = atom_id;
318 ),
319
320 TP_printk("%i,%i.%.9i,%i,%i,%i", __entry->event_type,
321 (int)__entry->ts_sec,
322 (int)__entry->ts_nsec,
323 __entry->tgid,
324 __entry->js,
325 __entry->atom_id)
326 );
327
328 TRACE_EVENT(mali_timeline_pm_checktrans,
329
330 TP_PROTO(u64 ts_sec,
331 u32 ts_nsec,
332 int trans_code,
333 int trans_id),
334
335 TP_ARGS(ts_sec,
336 ts_nsec,
337 trans_code,
338 trans_id),
339
340 TP_STRUCT__entry(
341 __field(u64, ts_sec)
342 __field(u32, ts_nsec)
343 __field(int, trans_code)
344 __field(int, trans_id)
345 ),
346
347 TP_fast_assign(
348 __entry->ts_sec = ts_sec;
349 __entry->ts_nsec = ts_nsec;
350 __entry->trans_code = trans_code;
351 __entry->trans_id = trans_id;
352 ),
353
354 TP_printk("%i,%i.%.9i,0,%i", __entry->trans_code,
355 (int)__entry->ts_sec,
356 (int)__entry->ts_nsec,
357 __entry->trans_id)
358
359 );
360
361 TRACE_EVENT(mali_timeline_context_active,
362
363 TP_PROTO(u64 ts_sec,
364 u32 ts_nsec,
365 int count),
366
367 TP_ARGS(ts_sec,
368 ts_nsec,
369 count),
370
371 TP_STRUCT__entry(
372 __field(u64, ts_sec)
373 __field(u32, ts_nsec)
374 __field(int, count)
375 ),
376
377 TP_fast_assign(
378 __entry->ts_sec = ts_sec;
379 __entry->ts_nsec = ts_nsec;
380 __entry->count = count;
381 ),
382
383 TP_printk("%i,%i.%.9i,0,%i", SW_SET_CONTEXT_ACTIVE,
384 (int)__entry->ts_sec,
385 (int)__entry->ts_nsec,
386 __entry->count)
387 );
388
389 #endif /* _MALI_TIMELINE_H */
390
391 #undef TRACE_INCLUDE_PATH
392 #define TRACE_INCLUDE_PATH .
393
394 /* This part must be outside protection */
395 #include <trace/define_trace.h>
396