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