LOCAL / GPU: ARM: add MALI R12P0_04REL0 drivers
[platform/kernel/linux-exynos.git] / drivers / gpu / arm / midgard / r12p0_04rel0 / 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