]>
Commit | Line | Data |
---|---|---|
16216333 | 1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
75471687 TB |
2 | /* |
3 | * include/trace/events/host1x.h | |
4 | * | |
5 | * host1x event logging to ftrace. | |
6 | * | |
7 | * Copyright (c) 2010-2013, NVIDIA Corporation. | |
75471687 TB |
8 | */ |
9 | ||
10 | #undef TRACE_SYSTEM | |
11 | #define TRACE_SYSTEM host1x | |
12 | ||
13 | #if !defined(_TRACE_HOST1X_H) || defined(TRACE_HEADER_MULTI_READ) | |
14 | #define _TRACE_HOST1X_H | |
15 | ||
16 | #include <linux/ktime.h> | |
17 | #include <linux/tracepoint.h> | |
18 | ||
b40d02bf TR |
19 | struct host1x_bo; |
20 | ||
75471687 TB |
21 | DECLARE_EVENT_CLASS(host1x, |
22 | TP_PROTO(const char *name), | |
23 | TP_ARGS(name), | |
24 | TP_STRUCT__entry(__field(const char *, name)), | |
25 | TP_fast_assign(__entry->name = name;), | |
26 | TP_printk("name=%s", __entry->name) | |
27 | ); | |
28 | ||
6579324a TB |
29 | DEFINE_EVENT(host1x, host1x_channel_open, |
30 | TP_PROTO(const char *name), | |
31 | TP_ARGS(name) | |
32 | ); | |
33 | ||
34 | DEFINE_EVENT(host1x, host1x_channel_release, | |
35 | TP_PROTO(const char *name), | |
36 | TP_ARGS(name) | |
37 | ); | |
38 | ||
39 | DEFINE_EVENT(host1x, host1x_cdma_begin, | |
40 | TP_PROTO(const char *name), | |
41 | TP_ARGS(name) | |
42 | ); | |
43 | ||
44 | DEFINE_EVENT(host1x, host1x_cdma_end, | |
45 | TP_PROTO(const char *name), | |
46 | TP_ARGS(name) | |
47 | ); | |
48 | ||
49 | TRACE_EVENT(host1x_cdma_push, | |
50 | TP_PROTO(const char *name, u32 op1, u32 op2), | |
51 | ||
52 | TP_ARGS(name, op1, op2), | |
53 | ||
54 | TP_STRUCT__entry( | |
55 | __field(const char *, name) | |
56 | __field(u32, op1) | |
57 | __field(u32, op2) | |
58 | ), | |
59 | ||
60 | TP_fast_assign( | |
61 | __entry->name = name; | |
62 | __entry->op1 = op1; | |
63 | __entry->op2 = op2; | |
64 | ), | |
65 | ||
66 | TP_printk("name=%s, op1=%08x, op2=%08x", | |
67 | __entry->name, __entry->op1, __entry->op2) | |
68 | ); | |
69 | ||
5a5fccbd TR |
70 | TRACE_EVENT(host1x_cdma_push_wide, |
71 | TP_PROTO(const char *name, u32 op1, u32 op2, u32 op3, u32 op4), | |
72 | ||
73 | TP_ARGS(name, op1, op2, op3, op4), | |
74 | ||
75 | TP_STRUCT__entry( | |
76 | __field(const char *, name) | |
77 | __field(u32, op1) | |
78 | __field(u32, op2) | |
79 | __field(u32, op3) | |
80 | __field(u32, op4) | |
81 | ), | |
82 | ||
83 | TP_fast_assign( | |
84 | __entry->name = name; | |
85 | __entry->op1 = op1; | |
86 | __entry->op2 = op2; | |
87 | __entry->op3 = op3; | |
88 | __entry->op4 = op4; | |
89 | ), | |
90 | ||
91 | TP_printk("name=%s, op1=%08x, op2=%08x, op3=%08x op4=%08x", | |
92 | __entry->name, __entry->op1, __entry->op2, __entry->op3, | |
93 | __entry->op4) | |
94 | ); | |
95 | ||
6579324a | 96 | TRACE_EVENT(host1x_cdma_push_gather, |
b40d02bf | 97 | TP_PROTO(const char *name, struct host1x_bo *bo, |
6579324a TB |
98 | u32 words, u32 offset, void *cmdbuf), |
99 | ||
b40d02bf | 100 | TP_ARGS(name, bo, words, offset, cmdbuf), |
6579324a TB |
101 | |
102 | TP_STRUCT__entry( | |
103 | __field(const char *, name) | |
b40d02bf | 104 | __field(struct host1x_bo *, bo) |
6579324a TB |
105 | __field(u32, words) |
106 | __field(u32, offset) | |
107 | __field(bool, cmdbuf) | |
108 | __dynamic_array(u32, cmdbuf, words) | |
109 | ), | |
110 | ||
111 | TP_fast_assign( | |
112 | if (cmdbuf) { | |
113 | memcpy(__get_dynamic_array(cmdbuf), cmdbuf+offset, | |
114 | words * sizeof(u32)); | |
115 | } | |
116 | __entry->cmdbuf = cmdbuf; | |
117 | __entry->name = name; | |
b40d02bf | 118 | __entry->bo = bo; |
6579324a TB |
119 | __entry->words = words; |
120 | __entry->offset = offset; | |
121 | ), | |
122 | ||
b40d02bf TR |
123 | TP_printk("name=%s, bo=%p, words=%u, offset=%d, contents=[%s]", |
124 | __entry->name, __entry->bo, | |
6579324a TB |
125 | __entry->words, __entry->offset, |
126 | __print_hex(__get_dynamic_array(cmdbuf), | |
127 | __entry->cmdbuf ? __entry->words * 4 : 0)) | |
128 | ); | |
129 | ||
130 | TRACE_EVENT(host1x_channel_submit, | |
24c94e16 TR |
131 | TP_PROTO(const char *name, u32 cmdbufs, u32 relocs, u32 syncpt_id, |
132 | u32 syncpt_incrs), | |
6579324a | 133 | |
24c94e16 | 134 | TP_ARGS(name, cmdbufs, relocs, syncpt_id, syncpt_incrs), |
6579324a TB |
135 | |
136 | TP_STRUCT__entry( | |
137 | __field(const char *, name) | |
138 | __field(u32, cmdbufs) | |
139 | __field(u32, relocs) | |
6579324a TB |
140 | __field(u32, syncpt_id) |
141 | __field(u32, syncpt_incrs) | |
142 | ), | |
143 | ||
144 | TP_fast_assign( | |
145 | __entry->name = name; | |
146 | __entry->cmdbufs = cmdbufs; | |
147 | __entry->relocs = relocs; | |
6579324a TB |
148 | __entry->syncpt_id = syncpt_id; |
149 | __entry->syncpt_incrs = syncpt_incrs; | |
150 | ), | |
151 | ||
24c94e16 TR |
152 | TP_printk("name=%s, cmdbufs=%u, relocs=%u, syncpt_id=%u, " |
153 | "syncpt_incrs=%u", | |
154 | __entry->name, __entry->cmdbufs, __entry->relocs, | |
155 | __entry->syncpt_id, __entry->syncpt_incrs) | |
6579324a TB |
156 | ); |
157 | ||
158 | TRACE_EVENT(host1x_channel_submitted, | |
159 | TP_PROTO(const char *name, u32 syncpt_base, u32 syncpt_max), | |
160 | ||
161 | TP_ARGS(name, syncpt_base, syncpt_max), | |
162 | ||
163 | TP_STRUCT__entry( | |
164 | __field(const char *, name) | |
165 | __field(u32, syncpt_base) | |
166 | __field(u32, syncpt_max) | |
167 | ), | |
168 | ||
169 | TP_fast_assign( | |
170 | __entry->name = name; | |
171 | __entry->syncpt_base = syncpt_base; | |
172 | __entry->syncpt_max = syncpt_max; | |
173 | ), | |
174 | ||
175 | TP_printk("name=%s, syncpt_base=%d, syncpt_max=%d", | |
176 | __entry->name, __entry->syncpt_base, __entry->syncpt_max) | |
177 | ); | |
178 | ||
179 | TRACE_EVENT(host1x_channel_submit_complete, | |
180 | TP_PROTO(const char *name, int count, u32 thresh), | |
181 | ||
182 | TP_ARGS(name, count, thresh), | |
183 | ||
184 | TP_STRUCT__entry( | |
185 | __field(const char *, name) | |
186 | __field(int, count) | |
187 | __field(u32, thresh) | |
188 | ), | |
189 | ||
190 | TP_fast_assign( | |
191 | __entry->name = name; | |
192 | __entry->count = count; | |
193 | __entry->thresh = thresh; | |
194 | ), | |
195 | ||
196 | TP_printk("name=%s, count=%d, thresh=%d", | |
197 | __entry->name, __entry->count, __entry->thresh) | |
198 | ); | |
199 | ||
200 | TRACE_EVENT(host1x_wait_cdma, | |
201 | TP_PROTO(const char *name, u32 eventid), | |
202 | ||
203 | TP_ARGS(name, eventid), | |
204 | ||
205 | TP_STRUCT__entry( | |
206 | __field(const char *, name) | |
207 | __field(u32, eventid) | |
208 | ), | |
209 | ||
210 | TP_fast_assign( | |
211 | __entry->name = name; | |
212 | __entry->eventid = eventid; | |
213 | ), | |
214 | ||
215 | TP_printk("name=%s, event=%d", __entry->name, __entry->eventid) | |
216 | ); | |
217 | ||
75471687 TB |
218 | TRACE_EVENT(host1x_syncpt_load_min, |
219 | TP_PROTO(u32 id, u32 val), | |
220 | ||
221 | TP_ARGS(id, val), | |
222 | ||
223 | TP_STRUCT__entry( | |
224 | __field(u32, id) | |
225 | __field(u32, val) | |
226 | ), | |
227 | ||
228 | TP_fast_assign( | |
229 | __entry->id = id; | |
230 | __entry->val = val; | |
231 | ), | |
232 | ||
233 | TP_printk("id=%d, val=%d", __entry->id, __entry->val) | |
234 | ); | |
235 | ||
6579324a | 236 | TRACE_EVENT(host1x_syncpt_wait_check, |
b40d02bf TR |
237 | TP_PROTO(struct host1x_bo *bo, u32 offset, u32 syncpt_id, u32 thresh, |
238 | u32 min), | |
6579324a | 239 | |
b40d02bf | 240 | TP_ARGS(bo, offset, syncpt_id, thresh, min), |
6579324a TB |
241 | |
242 | TP_STRUCT__entry( | |
b40d02bf | 243 | __field(struct host1x_bo *, bo) |
6579324a TB |
244 | __field(u32, offset) |
245 | __field(u32, syncpt_id) | |
246 | __field(u32, thresh) | |
247 | __field(u32, min) | |
248 | ), | |
249 | ||
250 | TP_fast_assign( | |
b40d02bf | 251 | __entry->bo = bo; |
6579324a TB |
252 | __entry->offset = offset; |
253 | __entry->syncpt_id = syncpt_id; | |
254 | __entry->thresh = thresh; | |
255 | __entry->min = min; | |
256 | ), | |
257 | ||
b40d02bf TR |
258 | TP_printk("bo=%p, offset=%05x, id=%d, thresh=%d, current=%d", |
259 | __entry->bo, __entry->offset, | |
6579324a TB |
260 | __entry->syncpt_id, __entry->thresh, |
261 | __entry->min) | |
262 | ); | |
263 | ||
75471687 TB |
264 | #endif /* _TRACE_HOST1X_H */ |
265 | ||
266 | /* This part must be outside protection */ | |
267 | #include <trace/define_trace.h> |