Commit | Line | Data |
---|---|---|
a8b1d34f MB |
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 | ||
ec2e3031 | 10 | #define DAPM_DIRECT "(direct)" |
6e588a0d | 11 | #define DAPM_ARROW(dir) (((dir) == SND_SOC_DAPM_DIR_OUT) ? "->" : "<-") |
ec2e3031 | 12 | |
3028eb8c | 13 | struct snd_soc_jack; |
a8b1d34f | 14 | struct snd_soc_codec; |
84e90930 MB |
15 | struct snd_soc_card; |
16 | struct snd_soc_dapm_widget; | |
56fb7421 | 17 | struct snd_soc_dapm_path; |
a8b1d34f | 18 | |
84e90930 | 19 | DECLARE_EVENT_CLASS(snd_soc_card, |
a8b1d34f | 20 | |
84e90930 MB |
21 | TP_PROTO(struct snd_soc_card *card, int val), |
22 | ||
23 | TP_ARGS(card, val), | |
24 | ||
25 | TP_STRUCT__entry( | |
26 | __string( name, card->name ) | |
27 | __field( int, val ) | |
28 | ), | |
29 | ||
30 | TP_fast_assign( | |
31 | __assign_str(name, card->name); | |
32 | __entry->val = val; | |
33 | ), | |
34 | ||
35 | TP_printk("card=%s val=%d", __get_str(name), (int)__entry->val) | |
36 | ); | |
37 | ||
38 | DEFINE_EVENT(snd_soc_card, snd_soc_bias_level_start, | |
39 | ||
40 | TP_PROTO(struct snd_soc_card *card, int val), | |
41 | ||
42 | TP_ARGS(card, val) | |
43 | ||
44 | ); | |
45 | ||
46 | DEFINE_EVENT(snd_soc_card, snd_soc_bias_level_done, | |
47 | ||
48 | TP_PROTO(struct snd_soc_card *card, int val), | |
49 | ||
50 | TP_ARGS(card, val) | |
51 | ||
52 | ); | |
53 | ||
54 | DECLARE_EVENT_CLASS(snd_soc_dapm_basic, | |
55 | ||
56 | TP_PROTO(struct snd_soc_card *card), | |
57 | ||
58 | TP_ARGS(card), | |
59 | ||
60 | TP_STRUCT__entry( | |
61 | __string( name, card->name ) | |
62 | ), | |
63 | ||
64 | TP_fast_assign( | |
65 | __assign_str(name, card->name); | |
66 | ), | |
67 | ||
68 | TP_printk("card=%s", __get_str(name)) | |
69 | ); | |
70 | ||
71 | DEFINE_EVENT(snd_soc_dapm_basic, snd_soc_dapm_start, | |
72 | ||
73 | TP_PROTO(struct snd_soc_card *card), | |
74 | ||
75 | TP_ARGS(card) | |
76 | ||
77 | ); | |
78 | ||
79 | DEFINE_EVENT(snd_soc_dapm_basic, snd_soc_dapm_done, | |
80 | ||
81 | TP_PROTO(struct snd_soc_card *card), | |
82 | ||
83 | TP_ARGS(card) | |
84 | ||
85 | ); | |
86 | ||
87 | DECLARE_EVENT_CLASS(snd_soc_dapm_widget, | |
88 | ||
89 | TP_PROTO(struct snd_soc_dapm_widget *w, int val), | |
90 | ||
91 | TP_ARGS(w, val), | |
92 | ||
93 | TP_STRUCT__entry( | |
94 | __string( name, w->name ) | |
95 | __field( int, val ) | |
96 | ), | |
97 | ||
98 | TP_fast_assign( | |
99 | __assign_str(name, w->name); | |
100 | __entry->val = val; | |
101 | ), | |
102 | ||
103 | TP_printk("widget=%s val=%d", __get_str(name), | |
104 | (int)__entry->val) | |
105 | ); | |
106 | ||
107 | DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_power, | |
108 | ||
109 | TP_PROTO(struct snd_soc_dapm_widget *w, int val), | |
110 | ||
111 | TP_ARGS(w, val) | |
112 | ||
113 | ); | |
114 | ||
115 | DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_event_start, | |
116 | ||
117 | TP_PROTO(struct snd_soc_dapm_widget *w, int val), | |
118 | ||
119 | TP_ARGS(w, val) | |
120 | ||
121 | ); | |
122 | ||
123 | DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_event_done, | |
124 | ||
125 | TP_PROTO(struct snd_soc_dapm_widget *w, int val), | |
126 | ||
127 | TP_ARGS(w, val) | |
128 | ||
129 | ); | |
a8b1d34f | 130 | |
de02d078 MB |
131 | TRACE_EVENT(snd_soc_dapm_walk_done, |
132 | ||
133 | TP_PROTO(struct snd_soc_card *card), | |
134 | ||
135 | TP_ARGS(card), | |
136 | ||
137 | TP_STRUCT__entry( | |
138 | __string( name, card->name ) | |
139 | __field( int, power_checks ) | |
140 | __field( int, path_checks ) | |
e56235e0 | 141 | __field( int, neighbour_checks ) |
de02d078 MB |
142 | ), |
143 | ||
144 | TP_fast_assign( | |
145 | __assign_str(name, card->name); | |
146 | __entry->power_checks = card->dapm_stats.power_checks; | |
147 | __entry->path_checks = card->dapm_stats.path_checks; | |
e56235e0 | 148 | __entry->neighbour_checks = card->dapm_stats.neighbour_checks; |
de02d078 MB |
149 | ), |
150 | ||
e56235e0 MB |
151 | TP_printk("%s: checks %d power, %d path, %d neighbour", |
152 | __get_str(name), (int)__entry->power_checks, | |
153 | (int)__entry->path_checks, (int)__entry->neighbour_checks) | |
de02d078 MB |
154 | ); |
155 | ||
6e588a0d | 156 | TRACE_EVENT(snd_soc_dapm_path, |
ec2e3031 LG |
157 | |
158 | TP_PROTO(struct snd_soc_dapm_widget *widget, | |
6e588a0d | 159 | enum snd_soc_dapm_direction dir, |
ec2e3031 LG |
160 | struct snd_soc_dapm_path *path), |
161 | ||
6e588a0d | 162 | TP_ARGS(widget, dir, path), |
ec2e3031 LG |
163 | |
164 | TP_STRUCT__entry( | |
165 | __string( wname, widget->name ) | |
166 | __string( pname, path->name ? path->name : DAPM_DIRECT) | |
6e588a0d LPC |
167 | __string( pnname, path->node[dir]->name ) |
168 | __field( int, path_node ) | |
ec2e3031 | 169 | __field( int, path_connect ) |
6e588a0d | 170 | __field( int, path_dir ) |
ec2e3031 LG |
171 | ), |
172 | ||
173 | TP_fast_assign( | |
174 | __assign_str(wname, widget->name); | |
175 | __assign_str(pname, path->name ? path->name : DAPM_DIRECT); | |
6e588a0d | 176 | __assign_str(pnname, path->node[dir]->name); |
ec2e3031 | 177 | __entry->path_connect = path->connect; |
6e588a0d LPC |
178 | __entry->path_node = (long)path->node[dir]; |
179 | __entry->path_dir = dir; | |
ec2e3031 LG |
180 | ), |
181 | ||
6e588a0d LPC |
182 | TP_printk("%c%s %s %s %s %s", |
183 | (int) __entry->path_node && | |
ec2e3031 | 184 | (int) __entry->path_connect ? '*' : ' ', |
6e588a0d LPC |
185 | __get_str(wname), DAPM_ARROW(__entry->path_dir), |
186 | __get_str(pname), DAPM_ARROW(__entry->path_dir), | |
187 | __get_str(pnname)) | |
ec2e3031 LG |
188 | ); |
189 | ||
190 | TRACE_EVENT(snd_soc_dapm_connected, | |
191 | ||
192 | TP_PROTO(int paths, int stream), | |
193 | ||
194 | TP_ARGS(paths, stream), | |
195 | ||
196 | TP_STRUCT__entry( | |
197 | __field( int, paths ) | |
198 | __field( int, stream ) | |
199 | ), | |
200 | ||
201 | TP_fast_assign( | |
202 | __entry->paths = paths; | |
203 | __entry->stream = stream; | |
204 | ), | |
205 | ||
e03f73a0 | 206 | TP_printk("%s: found %d paths", |
ec2e3031 LG |
207 | __entry->stream ? "capture" : "playback", __entry->paths) |
208 | ); | |
209 | ||
3028eb8c MB |
210 | TRACE_EVENT(snd_soc_jack_irq, |
211 | ||
212 | TP_PROTO(const char *name), | |
213 | ||
214 | TP_ARGS(name), | |
215 | ||
216 | TP_STRUCT__entry( | |
217 | __string( name, name ) | |
218 | ), | |
219 | ||
220 | TP_fast_assign( | |
221 | __assign_str(name, name); | |
222 | ), | |
223 | ||
224 | TP_printk("%s", __get_str(name)) | |
225 | ); | |
226 | ||
227 | TRACE_EVENT(snd_soc_jack_report, | |
228 | ||
229 | TP_PROTO(struct snd_soc_jack *jack, int mask, int val), | |
230 | ||
231 | TP_ARGS(jack, mask, val), | |
232 | ||
233 | TP_STRUCT__entry( | |
234 | __string( name, jack->jack->name ) | |
235 | __field( int, mask ) | |
236 | __field( int, val ) | |
237 | ), | |
238 | ||
239 | TP_fast_assign( | |
240 | __assign_str(name, jack->jack->name); | |
241 | __entry->mask = mask; | |
242 | __entry->val = val; | |
243 | ), | |
244 | ||
245 | TP_printk("jack=%s %x/%x", __get_str(name), (int)__entry->val, | |
246 | (int)__entry->mask) | |
247 | ); | |
248 | ||
249 | TRACE_EVENT(snd_soc_jack_notify, | |
250 | ||
251 | TP_PROTO(struct snd_soc_jack *jack, int val), | |
252 | ||
253 | TP_ARGS(jack, val), | |
254 | ||
255 | TP_STRUCT__entry( | |
256 | __string( name, jack->jack->name ) | |
257 | __field( int, val ) | |
258 | ), | |
259 | ||
260 | TP_fast_assign( | |
261 | __assign_str(name, jack->jack->name); | |
262 | __entry->val = val; | |
263 | ), | |
264 | ||
265 | TP_printk("jack=%s %x", __get_str(name), (int)__entry->val) | |
266 | ); | |
267 | ||
a8b1d34f MB |
268 | #endif /* _TRACE_ASOC_H */ |
269 | ||
270 | /* This part must be outside protection */ | |
271 | #include <trace/define_trace.h> |