Commit | Line | Data |
---|---|---|
b283666f PW |
1 | #undef TRACE_SYSTEM |
2 | #define TRACE_SYSTEM asoc | |
3 | ||
3bc29f0a MD |
4 | #if !defined(LTTNG_TRACE_ASOC_H) || defined(TRACE_HEADER_MULTI_READ) |
5 | #define LTTNG_TRACE_ASOC_H | |
b283666f | 6 | |
3bc29f0a | 7 | #include "../../../probes/lttng-tracepoint-event.h" |
b283666f | 8 | #include <linux/ktime.h> |
b283666f PW |
9 | #include <linux/version.h> |
10 | ||
7c68b363 AG |
11 | #define DAPM_DIRECT "(direct)" |
12 | ||
b283666f PW |
13 | #ifndef _TRACE_ASOC_DEF |
14 | #define _TRACE_ASOC_DEF | |
15 | struct snd_soc_jack; | |
16 | struct snd_soc_codec; | |
17 | #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)) | |
18 | struct snd_soc_platform; | |
19 | #endif | |
20 | struct snd_soc_card; | |
21 | struct snd_soc_dapm_widget; | |
22 | #endif | |
23 | ||
7df57eb5 NK |
24 | #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0)) |
25 | #define CODEC_NAME_FIELD component.name | |
26 | #define CODEC_ID_FIELD component.id | |
27 | #else | |
28 | #define CODEC_NAME_FIELD name | |
29 | #define CODEC_ID_FIELD id | |
30 | #endif | |
31 | ||
b283666f PW |
32 | /* |
33 | * Log register events | |
34 | */ | |
3bc29f0a | 35 | LTTNG_TRACEPOINT_EVENT_CLASS(snd_soc_reg, |
b283666f PW |
36 | |
37 | TP_PROTO(struct snd_soc_codec *codec, unsigned int reg, | |
38 | unsigned int val), | |
39 | ||
40 | TP_ARGS(codec, reg, val), | |
41 | ||
42 | TP_STRUCT__entry( | |
7df57eb5 | 43 | __string( name, codec->CODEC_NAME_FIELD ) |
b283666f PW |
44 | __field( int, id ) |
45 | __field( unsigned int, reg ) | |
46 | __field( unsigned int, val ) | |
47 | ), | |
48 | ||
49 | TP_fast_assign( | |
7df57eb5 NK |
50 | tp_strcpy(name, codec->CODEC_NAME_FIELD) |
51 | tp_assign(id, codec->CODEC_ID_FIELD) | |
d3ac4d63 PW |
52 | tp_assign(reg, reg) |
53 | tp_assign(val, val) | |
b283666f PW |
54 | ), |
55 | ||
56 | TP_printk("codec=%s.%d reg=%x val=%x", __get_str(name), | |
57 | (int)__entry->id, (unsigned int)__entry->reg, | |
58 | (unsigned int)__entry->val) | |
59 | ) | |
60 | ||
3bc29f0a | 61 | LTTNG_TRACEPOINT_EVENT_INSTANCE(snd_soc_reg, snd_soc_reg_write, |
b283666f PW |
62 | |
63 | TP_PROTO(struct snd_soc_codec *codec, unsigned int reg, | |
64 | unsigned int val), | |
65 | ||
66 | TP_ARGS(codec, reg, val) | |
67 | ||
68 | ) | |
69 | ||
3bc29f0a | 70 | LTTNG_TRACEPOINT_EVENT_INSTANCE(snd_soc_reg, snd_soc_reg_read, |
b283666f PW |
71 | |
72 | TP_PROTO(struct snd_soc_codec *codec, unsigned int reg, | |
73 | unsigned int val), | |
74 | ||
75 | TP_ARGS(codec, reg, val) | |
76 | ||
77 | ) | |
78 | ||
79 | #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)) | |
3bc29f0a | 80 | LTTNG_TRACEPOINT_EVENT_CLASS(snd_soc_preg, |
b283666f PW |
81 | |
82 | TP_PROTO(struct snd_soc_platform *platform, unsigned int reg, | |
83 | unsigned int val), | |
84 | ||
85 | TP_ARGS(platform, reg, val), | |
86 | ||
87 | TP_STRUCT__entry( | |
7df57eb5 | 88 | __string( name, platform->CODEC_NAME_FIELD ) |
b283666f PW |
89 | __field( int, id ) |
90 | __field( unsigned int, reg ) | |
91 | __field( unsigned int, val ) | |
92 | ), | |
93 | ||
94 | TP_fast_assign( | |
7df57eb5 NK |
95 | tp_strcpy(name, platform->CODEC_NAME_FIELD) |
96 | tp_assign(id, platform->CODEC_ID_FIELD) | |
d3ac4d63 PW |
97 | tp_assign(reg, reg) |
98 | tp_assign(val, val) | |
b283666f PW |
99 | ), |
100 | ||
101 | TP_printk("platform=%s.%d reg=%x val=%x", __get_str(name), | |
102 | (int)__entry->id, (unsigned int)__entry->reg, | |
103 | (unsigned int)__entry->val) | |
104 | ) | |
105 | ||
3bc29f0a | 106 | LTTNG_TRACEPOINT_EVENT_INSTANCE(snd_soc_preg, snd_soc_preg_write, |
b283666f PW |
107 | |
108 | TP_PROTO(struct snd_soc_platform *platform, unsigned int reg, | |
109 | unsigned int val), | |
110 | ||
111 | TP_ARGS(platform, reg, val) | |
112 | ||
113 | ) | |
114 | ||
3bc29f0a | 115 | LTTNG_TRACEPOINT_EVENT_INSTANCE(snd_soc_preg, snd_soc_preg_read, |
b283666f PW |
116 | |
117 | TP_PROTO(struct snd_soc_platform *platform, unsigned int reg, | |
118 | unsigned int val), | |
119 | ||
120 | TP_ARGS(platform, reg, val) | |
121 | ||
122 | ) | |
123 | #endif | |
124 | ||
3bc29f0a | 125 | LTTNG_TRACEPOINT_EVENT_CLASS(snd_soc_card, |
b283666f PW |
126 | |
127 | TP_PROTO(struct snd_soc_card *card, int val), | |
128 | ||
129 | TP_ARGS(card, val), | |
130 | ||
131 | TP_STRUCT__entry( | |
132 | __string( name, card->name ) | |
133 | __field( int, val ) | |
134 | ), | |
135 | ||
136 | TP_fast_assign( | |
d3ac4d63 PW |
137 | tp_strcpy(name, card->name) |
138 | tp_assign(val, val) | |
b283666f PW |
139 | ), |
140 | ||
141 | TP_printk("card=%s val=%d", __get_str(name), (int)__entry->val) | |
142 | ) | |
143 | ||
3bc29f0a | 144 | LTTNG_TRACEPOINT_EVENT_INSTANCE(snd_soc_card, snd_soc_bias_level_start, |
b283666f PW |
145 | |
146 | TP_PROTO(struct snd_soc_card *card, int val), | |
147 | ||
148 | TP_ARGS(card, val) | |
149 | ||
150 | ) | |
151 | ||
3bc29f0a | 152 | LTTNG_TRACEPOINT_EVENT_INSTANCE(snd_soc_card, snd_soc_bias_level_done, |
b283666f PW |
153 | |
154 | TP_PROTO(struct snd_soc_card *card, int val), | |
155 | ||
156 | TP_ARGS(card, val) | |
157 | ||
158 | ) | |
159 | ||
3bc29f0a | 160 | LTTNG_TRACEPOINT_EVENT_CLASS(snd_soc_dapm_basic, |
b283666f PW |
161 | |
162 | TP_PROTO(struct snd_soc_card *card), | |
163 | ||
164 | TP_ARGS(card), | |
165 | ||
166 | TP_STRUCT__entry( | |
167 | __string( name, card->name ) | |
168 | ), | |
169 | ||
170 | TP_fast_assign( | |
d3ac4d63 | 171 | tp_strcpy(name, card->name) |
b283666f PW |
172 | ), |
173 | ||
174 | TP_printk("card=%s", __get_str(name)) | |
175 | ) | |
176 | ||
3bc29f0a | 177 | LTTNG_TRACEPOINT_EVENT_INSTANCE(snd_soc_dapm_basic, snd_soc_dapm_start, |
b283666f PW |
178 | |
179 | TP_PROTO(struct snd_soc_card *card), | |
180 | ||
181 | TP_ARGS(card) | |
182 | ||
183 | ) | |
184 | ||
3bc29f0a | 185 | LTTNG_TRACEPOINT_EVENT_INSTANCE(snd_soc_dapm_basic, snd_soc_dapm_done, |
b283666f PW |
186 | |
187 | TP_PROTO(struct snd_soc_card *card), | |
188 | ||
189 | TP_ARGS(card) | |
190 | ||
191 | ) | |
192 | ||
3bc29f0a | 193 | LTTNG_TRACEPOINT_EVENT_CLASS(snd_soc_dapm_widget, |
b283666f PW |
194 | |
195 | TP_PROTO(struct snd_soc_dapm_widget *w, int val), | |
196 | ||
197 | TP_ARGS(w, val), | |
198 | ||
199 | TP_STRUCT__entry( | |
200 | __string( name, w->name ) | |
201 | __field( int, val ) | |
202 | ), | |
203 | ||
204 | TP_fast_assign( | |
d3ac4d63 PW |
205 | tp_strcpy(name, w->name) |
206 | tp_assign(val, val) | |
b283666f PW |
207 | ), |
208 | ||
209 | TP_printk("widget=%s val=%d", __get_str(name), | |
210 | (int)__entry->val) | |
211 | ) | |
212 | ||
3bc29f0a | 213 | LTTNG_TRACEPOINT_EVENT_INSTANCE(snd_soc_dapm_widget, snd_soc_dapm_widget_power, |
b283666f PW |
214 | |
215 | TP_PROTO(struct snd_soc_dapm_widget *w, int val), | |
216 | ||
217 | TP_ARGS(w, val) | |
218 | ||
219 | ) | |
220 | ||
3bc29f0a | 221 | LTTNG_TRACEPOINT_EVENT_INSTANCE(snd_soc_dapm_widget, snd_soc_dapm_widget_event_start, |
b283666f PW |
222 | |
223 | TP_PROTO(struct snd_soc_dapm_widget *w, int val), | |
224 | ||
225 | TP_ARGS(w, val) | |
226 | ||
227 | ) | |
228 | ||
3bc29f0a | 229 | LTTNG_TRACEPOINT_EVENT_INSTANCE(snd_soc_dapm_widget, snd_soc_dapm_widget_event_done, |
b283666f PW |
230 | |
231 | TP_PROTO(struct snd_soc_dapm_widget *w, int val), | |
232 | ||
233 | TP_ARGS(w, val) | |
234 | ||
235 | ) | |
236 | ||
237 | #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) | |
3bc29f0a | 238 | LTTNG_TRACEPOINT_EVENT(snd_soc_dapm_walk_done, |
b283666f PW |
239 | |
240 | TP_PROTO(struct snd_soc_card *card), | |
241 | ||
242 | TP_ARGS(card), | |
243 | ||
244 | TP_STRUCT__entry( | |
245 | __string( name, card->name ) | |
246 | __field( int, power_checks ) | |
247 | __field( int, path_checks ) | |
248 | __field( int, neighbour_checks ) | |
249 | ), | |
250 | ||
251 | TP_fast_assign( | |
d3ac4d63 PW |
252 | tp_strcpy(name, card->name) |
253 | tp_assign(power_checks, card->dapm_stats.power_checks) | |
254 | tp_assign(path_checks, card->dapm_stats.path_checks) | |
255 | tp_assign(neighbour_checks, card->dapm_stats.neighbour_checks) | |
b283666f PW |
256 | ), |
257 | ||
258 | TP_printk("%s: checks %d power, %d path, %d neighbour", | |
259 | __get_str(name), (int)__entry->power_checks, | |
260 | (int)__entry->path_checks, (int)__entry->neighbour_checks) | |
261 | ) | |
262 | #endif | |
263 | ||
7c68b363 | 264 | #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)) |
3bc29f0a | 265 | LTTNG_TRACEPOINT_EVENT(snd_soc_dapm_output_path, |
7c68b363 AG |
266 | |
267 | TP_PROTO(struct snd_soc_dapm_widget *widget, | |
268 | struct snd_soc_dapm_path *path), | |
269 | ||
270 | TP_ARGS(widget, path), | |
271 | ||
272 | TP_STRUCT__entry( | |
273 | __string( wname, widget->name ) | |
274 | __string( pname, path->name ? path->name : DAPM_DIRECT) | |
275 | __string( psname, path->sink->name ) | |
276 | __field( int, path_sink ) | |
277 | __field( int, path_connect ) | |
278 | ), | |
279 | ||
280 | TP_fast_assign( | |
281 | tp_strcpy(wname, widget->name) | |
282 | tp_strcpy(pname, path->name ? path->name : DAPM_DIRECT) | |
283 | tp_strcpy(psname, path->sink->name) | |
284 | tp_assign(path_connect, path->connect) | |
285 | tp_assign(path_sink, (long)path->sink) | |
286 | ), | |
287 | ||
288 | TP_printk("%c%s -> %s -> %s\n", | |
289 | (int) __entry->path_sink && | |
290 | (int) __entry->path_connect ? '*' : ' ', | |
291 | __get_str(wname), __get_str(pname), __get_str(psname)) | |
292 | ) | |
293 | ||
3bc29f0a | 294 | LTTNG_TRACEPOINT_EVENT(snd_soc_dapm_input_path, |
7c68b363 AG |
295 | |
296 | TP_PROTO(struct snd_soc_dapm_widget *widget, | |
297 | struct snd_soc_dapm_path *path), | |
298 | ||
299 | TP_ARGS(widget, path), | |
300 | ||
301 | TP_STRUCT__entry( | |
302 | __string( wname, widget->name ) | |
303 | __string( pname, path->name ? path->name : DAPM_DIRECT) | |
304 | __string( psname, path->source->name ) | |
305 | __field( int, path_source ) | |
306 | __field( int, path_connect ) | |
307 | ), | |
308 | ||
309 | TP_fast_assign( | |
310 | tp_strcpy(wname, widget->name) | |
311 | tp_strcpy(pname, path->name ? path->name : DAPM_DIRECT) | |
312 | tp_strcpy(psname, path->source->name) | |
313 | tp_assign(path_connect, path->connect) | |
314 | tp_assign(path_source, (long)path->source) | |
315 | ), | |
316 | ||
317 | TP_printk("%c%s <- %s <- %s\n", | |
318 | (int) __entry->path_source && | |
319 | (int) __entry->path_connect ? '*' : ' ', | |
320 | __get_str(wname), __get_str(pname), __get_str(psname)) | |
321 | ) | |
322 | ||
3bc29f0a | 323 | LTTNG_TRACEPOINT_EVENT(snd_soc_dapm_connected, |
7c68b363 AG |
324 | |
325 | TP_PROTO(int paths, int stream), | |
326 | ||
327 | TP_ARGS(paths, stream), | |
328 | ||
329 | TP_STRUCT__entry( | |
330 | __field( int, paths ) | |
331 | __field( int, stream ) | |
332 | ), | |
333 | ||
334 | TP_fast_assign( | |
335 | tp_assign(paths, paths) | |
336 | tp_assign(stream, stream) | |
337 | ), | |
338 | ||
339 | TP_printk("%s: found %d paths\n", | |
340 | __entry->stream ? "capture" : "playback", __entry->paths) | |
341 | ) | |
342 | #endif | |
343 | ||
3bc29f0a | 344 | LTTNG_TRACEPOINT_EVENT(snd_soc_jack_irq, |
b283666f PW |
345 | |
346 | TP_PROTO(const char *name), | |
347 | ||
348 | TP_ARGS(name), | |
349 | ||
350 | TP_STRUCT__entry( | |
351 | __string( name, name ) | |
352 | ), | |
353 | ||
354 | TP_fast_assign( | |
d3ac4d63 | 355 | tp_strcpy(name, name) |
b283666f PW |
356 | ), |
357 | ||
358 | TP_printk("%s", __get_str(name)) | |
359 | ) | |
360 | ||
3bc29f0a | 361 | LTTNG_TRACEPOINT_EVENT(snd_soc_jack_report, |
b283666f PW |
362 | |
363 | TP_PROTO(struct snd_soc_jack *jack, int mask, int val), | |
364 | ||
365 | TP_ARGS(jack, mask, val), | |
366 | ||
367 | TP_STRUCT__entry( | |
368 | __string( name, jack->jack->name ) | |
369 | __field( int, mask ) | |
370 | __field( int, val ) | |
371 | ), | |
372 | ||
373 | TP_fast_assign( | |
d3ac4d63 PW |
374 | tp_strcpy(name, jack->jack->name) |
375 | tp_assign(mask, mask) | |
376 | tp_assign(val, val) | |
b283666f PW |
377 | ), |
378 | ||
379 | TP_printk("jack=%s %x/%x", __get_str(name), (int)__entry->val, | |
380 | (int)__entry->mask) | |
381 | ) | |
382 | ||
3bc29f0a | 383 | LTTNG_TRACEPOINT_EVENT(snd_soc_jack_notify, |
b283666f PW |
384 | |
385 | TP_PROTO(struct snd_soc_jack *jack, int val), | |
386 | ||
387 | TP_ARGS(jack, val), | |
388 | ||
389 | TP_STRUCT__entry( | |
390 | __string( name, jack->jack->name ) | |
391 | __field( int, val ) | |
392 | ), | |
393 | ||
394 | TP_fast_assign( | |
d3ac4d63 PW |
395 | tp_strcpy(name, jack->jack->name) |
396 | tp_assign(val, val) | |
b283666f PW |
397 | ), |
398 | ||
399 | TP_printk("jack=%s %x", __get_str(name), (int)__entry->val) | |
400 | ) | |
401 | ||
3bc29f0a | 402 | LTTNG_TRACEPOINT_EVENT(snd_soc_cache_sync, |
b283666f PW |
403 | |
404 | TP_PROTO(struct snd_soc_codec *codec, const char *type, | |
405 | const char *status), | |
406 | ||
407 | TP_ARGS(codec, type, status), | |
408 | ||
409 | TP_STRUCT__entry( | |
7df57eb5 | 410 | __string( name, codec->CODEC_NAME_FIELD ) |
b283666f PW |
411 | __string( status, status ) |
412 | __string( type, type ) | |
413 | __field( int, id ) | |
414 | ), | |
415 | ||
416 | TP_fast_assign( | |
7df57eb5 | 417 | tp_strcpy(name, codec->CODEC_NAME_FIELD) |
d3ac4d63 PW |
418 | tp_strcpy(status, status) |
419 | tp_strcpy(type, type) | |
7df57eb5 | 420 | tp_assign(id, codec->CODEC_ID_FIELD) |
b283666f PW |
421 | ), |
422 | ||
423 | TP_printk("codec=%s.%d type=%s status=%s", __get_str(name), | |
424 | (int)__entry->id, __get_str(type), __get_str(status)) | |
425 | ) | |
426 | ||
3bc29f0a | 427 | #endif /* LTTNG_TRACE_ASOC_H */ |
b283666f PW |
428 | |
429 | /* This part must be outside protection */ | |
430 | #include "../../../probes/define_trace.h" |