blob: 88cf39d96d0fb08704745c28a8e9d7262de68f09 [file] [log] [blame]
Mark Browna8b1d342010-11-03 18:05:58 -04001#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
Liam Girdwoodec2e3032012-04-18 11:41:11 +010010#define DAPM_DIRECT "(direct)"
11
Mark Brown3028eb82010-12-05 12:22:46 +000012struct snd_soc_jack;
Mark Browna8b1d342010-11-03 18:05:58 -040013struct snd_soc_codec;
Mark Brown84e90932010-11-04 00:07:02 -040014struct snd_soc_card;
15struct snd_soc_dapm_widget;
Liam Girdwood56fb7422013-09-13 18:09:46 +010016struct snd_soc_dapm_path;
Mark Browna8b1d342010-11-03 18:05:58 -040017
Mark Brown84e90932010-11-04 00:07:02 -040018DECLARE_EVENT_CLASS(snd_soc_card,
Mark Browna8b1d342010-11-03 18:05:58 -040019
Mark Brown84e90932010-11-04 00:07:02 -040020 TP_PROTO(struct snd_soc_card *card, int val),
21
22 TP_ARGS(card, val),
23
24 TP_STRUCT__entry(
25 __string( name, card->name )
26 __field( int, val )
27 ),
28
29 TP_fast_assign(
30 __assign_str(name, card->name);
31 __entry->val = val;
32 ),
33
34 TP_printk("card=%s val=%d", __get_str(name), (int)__entry->val)
35);
36
37DEFINE_EVENT(snd_soc_card, snd_soc_bias_level_start,
38
39 TP_PROTO(struct snd_soc_card *card, int val),
40
41 TP_ARGS(card, val)
42
43);
44
45DEFINE_EVENT(snd_soc_card, snd_soc_bias_level_done,
46
47 TP_PROTO(struct snd_soc_card *card, int val),
48
49 TP_ARGS(card, val)
50
51);
52
53DECLARE_EVENT_CLASS(snd_soc_dapm_basic,
54
55 TP_PROTO(struct snd_soc_card *card),
56
57 TP_ARGS(card),
58
59 TP_STRUCT__entry(
60 __string( name, card->name )
61 ),
62
63 TP_fast_assign(
64 __assign_str(name, card->name);
65 ),
66
67 TP_printk("card=%s", __get_str(name))
68);
69
70DEFINE_EVENT(snd_soc_dapm_basic, snd_soc_dapm_start,
71
72 TP_PROTO(struct snd_soc_card *card),
73
74 TP_ARGS(card)
75
76);
77
78DEFINE_EVENT(snd_soc_dapm_basic, snd_soc_dapm_done,
79
80 TP_PROTO(struct snd_soc_card *card),
81
82 TP_ARGS(card)
83
84);
85
86DECLARE_EVENT_CLASS(snd_soc_dapm_widget,
87
88 TP_PROTO(struct snd_soc_dapm_widget *w, int val),
89
90 TP_ARGS(w, val),
91
92 TP_STRUCT__entry(
93 __string( name, w->name )
94 __field( int, val )
95 ),
96
97 TP_fast_assign(
98 __assign_str(name, w->name);
99 __entry->val = val;
100 ),
101
102 TP_printk("widget=%s val=%d", __get_str(name),
103 (int)__entry->val)
104);
105
106DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_power,
107
108 TP_PROTO(struct snd_soc_dapm_widget *w, int val),
109
110 TP_ARGS(w, val)
111
112);
113
114DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_event_start,
115
116 TP_PROTO(struct snd_soc_dapm_widget *w, int val),
117
118 TP_ARGS(w, val)
119
120);
121
122DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_event_done,
123
124 TP_PROTO(struct snd_soc_dapm_widget *w, int val),
125
126 TP_ARGS(w, val)
127
128);
Mark Browna8b1d342010-11-03 18:05:58 -0400129
Mark Brownde02d072011-09-20 21:43:24 +0100130TRACE_EVENT(snd_soc_dapm_walk_done,
131
132 TP_PROTO(struct snd_soc_card *card),
133
134 TP_ARGS(card),
135
136 TP_STRUCT__entry(
137 __string( name, card->name )
138 __field( int, power_checks )
139 __field( int, path_checks )
Mark Browne56235e2011-09-21 18:19:14 +0100140 __field( int, neighbour_checks )
Mark Brownde02d072011-09-20 21:43:24 +0100141 ),
142
143 TP_fast_assign(
144 __assign_str(name, card->name);
145 __entry->power_checks = card->dapm_stats.power_checks;
146 __entry->path_checks = card->dapm_stats.path_checks;
Mark Browne56235e2011-09-21 18:19:14 +0100147 __entry->neighbour_checks = card->dapm_stats.neighbour_checks;
Mark Brownde02d072011-09-20 21:43:24 +0100148 ),
149
Mark Browne56235e2011-09-21 18:19:14 +0100150 TP_printk("%s: checks %d power, %d path, %d neighbour",
151 __get_str(name), (int)__entry->power_checks,
152 (int)__entry->path_checks, (int)__entry->neighbour_checks)
Mark Brownde02d072011-09-20 21:43:24 +0100153);
154
Liam Girdwoodec2e3032012-04-18 11:41:11 +0100155TRACE_EVENT(snd_soc_dapm_output_path,
156
157 TP_PROTO(struct snd_soc_dapm_widget *widget,
158 struct snd_soc_dapm_path *path),
159
160 TP_ARGS(widget, path),
161
162 TP_STRUCT__entry(
163 __string( wname, widget->name )
164 __string( pname, path->name ? path->name : DAPM_DIRECT)
165 __string( psname, path->sink->name )
166 __field( int, path_sink )
167 __field( int, path_connect )
168 ),
169
170 TP_fast_assign(
171 __assign_str(wname, widget->name);
172 __assign_str(pname, path->name ? path->name : DAPM_DIRECT);
173 __assign_str(psname, path->sink->name);
174 __entry->path_connect = path->connect;
Liam Girdwoodc97f3bd2012-04-23 10:31:15 +0100175 __entry->path_sink = (long)path->sink;
Liam Girdwoodec2e3032012-04-18 11:41:11 +0100176 ),
177
Anatol Pomozove03f73a2014-09-24 11:17:14 -0700178 TP_printk("%c%s -> %s -> %s",
Liam Girdwoodec2e3032012-04-18 11:41:11 +0100179 (int) __entry->path_sink &&
180 (int) __entry->path_connect ? '*' : ' ',
181 __get_str(wname), __get_str(pname), __get_str(psname))
182);
183
184TRACE_EVENT(snd_soc_dapm_input_path,
185
186 TP_PROTO(struct snd_soc_dapm_widget *widget,
187 struct snd_soc_dapm_path *path),
188
189 TP_ARGS(widget, path),
190
191 TP_STRUCT__entry(
192 __string( wname, widget->name )
193 __string( pname, path->name ? path->name : DAPM_DIRECT)
194 __string( psname, path->source->name )
195 __field( int, path_source )
196 __field( int, path_connect )
197 ),
198
199 TP_fast_assign(
200 __assign_str(wname, widget->name);
201 __assign_str(pname, path->name ? path->name : DAPM_DIRECT);
202 __assign_str(psname, path->source->name);
203 __entry->path_connect = path->connect;
Liam Girdwoodc97f3bd2012-04-23 10:31:15 +0100204 __entry->path_source = (long)path->source;
Liam Girdwoodec2e3032012-04-18 11:41:11 +0100205 ),
206
Anatol Pomozove03f73a2014-09-24 11:17:14 -0700207 TP_printk("%c%s <- %s <- %s",
Liam Girdwoodec2e3032012-04-18 11:41:11 +0100208 (int) __entry->path_source &&
209 (int) __entry->path_connect ? '*' : ' ',
210 __get_str(wname), __get_str(pname), __get_str(psname))
211);
212
213TRACE_EVENT(snd_soc_dapm_connected,
214
215 TP_PROTO(int paths, int stream),
216
217 TP_ARGS(paths, stream),
218
219 TP_STRUCT__entry(
220 __field( int, paths )
221 __field( int, stream )
222 ),
223
224 TP_fast_assign(
225 __entry->paths = paths;
226 __entry->stream = stream;
227 ),
228
Anatol Pomozove03f73a2014-09-24 11:17:14 -0700229 TP_printk("%s: found %d paths",
Liam Girdwoodec2e3032012-04-18 11:41:11 +0100230 __entry->stream ? "capture" : "playback", __entry->paths)
231);
232
Mark Brown3028eb82010-12-05 12:22:46 +0000233TRACE_EVENT(snd_soc_jack_irq,
234
235 TP_PROTO(const char *name),
236
237 TP_ARGS(name),
238
239 TP_STRUCT__entry(
240 __string( name, name )
241 ),
242
243 TP_fast_assign(
244 __assign_str(name, name);
245 ),
246
247 TP_printk("%s", __get_str(name))
248);
249
250TRACE_EVENT(snd_soc_jack_report,
251
252 TP_PROTO(struct snd_soc_jack *jack, int mask, int val),
253
254 TP_ARGS(jack, mask, val),
255
256 TP_STRUCT__entry(
257 __string( name, jack->jack->name )
258 __field( int, mask )
259 __field( int, val )
260 ),
261
262 TP_fast_assign(
263 __assign_str(name, jack->jack->name);
264 __entry->mask = mask;
265 __entry->val = val;
266 ),
267
268 TP_printk("jack=%s %x/%x", __get_str(name), (int)__entry->val,
269 (int)__entry->mask)
270);
271
272TRACE_EVENT(snd_soc_jack_notify,
273
274 TP_PROTO(struct snd_soc_jack *jack, int val),
275
276 TP_ARGS(jack, val),
277
278 TP_STRUCT__entry(
279 __string( name, jack->jack->name )
280 __field( int, val )
281 ),
282
283 TP_fast_assign(
284 __assign_str(name, jack->jack->name);
285 __entry->val = val;
286 ),
287
288 TP_printk("jack=%s %x", __get_str(name), (int)__entry->val)
289);
290
Mark Browna8b1d342010-11-03 18:05:58 -0400291#endif /* _TRACE_ASOC_H */
292
293/* This part must be outside protection */
294#include <trace/define_trace.h>