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