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