Warning: This file is not a C or C++ file. It does not have highlighting.

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

Warning: This file is not a C or C++ file. It does not have highlighting.

source code of linux/include/trace/events/asoc.h