Linux Audio

Check our new training course

Loading...
v5.4
  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
 11#define DAPM_DIRECT "(direct)"
 12#define DAPM_ARROW(dir) (((dir) == SND_SOC_DAPM_DIR_OUT) ? "->" : "<-")
 13
 14struct snd_soc_jack;
 
 15struct snd_soc_card;
 16struct snd_soc_dapm_widget;
 17struct snd_soc_dapm_path;
 18
 19DECLARE_EVENT_CLASS(snd_soc_card,
 20
 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
 38DEFINE_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
 46DEFINE_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
 54DECLARE_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
 71DEFINE_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
 79DEFINE_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
 87DECLARE_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
107DEFINE_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
115DEFINE_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
123DEFINE_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);
130
131TRACE_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		)
141		__field(	int,	neighbour_checks	)
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;
148		__entry->neighbour_checks = card->dapm_stats.neighbour_checks;
149	),
150
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)
154);
155
156TRACE_EVENT(snd_soc_dapm_path,
157
158	TP_PROTO(struct snd_soc_dapm_widget *widget,
159		enum snd_soc_dapm_direction dir,
160		struct snd_soc_dapm_path *path),
161
162	TP_ARGS(widget, dir, path),
163
164	TP_STRUCT__entry(
165		__string(	wname,	widget->name		)
166		__string(	pname,	path->name ? path->name : DAPM_DIRECT)
167		__string(	pnname,	path->node[dir]->name	)
168		__field(	int,	path_node		)
169		__field(	int,	path_connect		)
170		__field(	int,	path_dir		)
171	),
172
173	TP_fast_assign(
174		__assign_str(wname, widget->name);
175		__assign_str(pname, path->name ? path->name : DAPM_DIRECT);
176		__assign_str(pnname, path->node[dir]->name);
177		__entry->path_connect = path->connect;
178		__entry->path_node = (long)path->node[dir];
179		__entry->path_dir = dir;
180	),
181
182	TP_printk("%c%s %s %s %s %s",
183		(int) __entry->path_node &&
184		(int) __entry->path_connect ? '*' : ' ',
185		__get_str(wname), DAPM_ARROW(__entry->path_dir),
186		__get_str(pname), DAPM_ARROW(__entry->path_dir),
187		__get_str(pnname))
188);
189
190TRACE_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
206	TP_printk("%s: found %d paths",
207		__entry->stream ? "capture" : "playback", __entry->paths)
208);
209
210TRACE_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
227TRACE_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->id		)
235		__field(	int,		mask			)
236		__field(	int,		val			)
237	),
238
239	TP_fast_assign(
240		__assign_str(name, jack->jack->id);
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
249TRACE_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->id		)
257		__field(	int,		val			)
258	),
259
260	TP_fast_assign(
261		__assign_str(name, jack->jack->id);
262		__entry->val = val;
263	),
264
265	TP_printk("jack=%s %x", __get_str(name), (int)__entry->val)
266);
267
268#endif /* _TRACE_ASOC_H */
269
270/* This part must be outside protection */
271#include <trace/define_trace.h>
v4.10.11
 
  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#define DAPM_ARROW(dir) (((dir) == SND_SOC_DAPM_DIR_OUT) ? "->" : "<-")
 12
 13struct snd_soc_jack;
 14struct snd_soc_codec;
 15struct snd_soc_card;
 16struct snd_soc_dapm_widget;
 17struct snd_soc_dapm_path;
 18
 19DECLARE_EVENT_CLASS(snd_soc_card,
 20
 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
 38DEFINE_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
 46DEFINE_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
 54DECLARE_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
 71DEFINE_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
 79DEFINE_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
 87DECLARE_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
107DEFINE_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
115DEFINE_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
123DEFINE_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);
130
131TRACE_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		)
141		__field(	int,	neighbour_checks	)
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;
148		__entry->neighbour_checks = card->dapm_stats.neighbour_checks;
149	),
150
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)
154);
155
156TRACE_EVENT(snd_soc_dapm_path,
157
158	TP_PROTO(struct snd_soc_dapm_widget *widget,
159		enum snd_soc_dapm_direction dir,
160		struct snd_soc_dapm_path *path),
161
162	TP_ARGS(widget, dir, path),
163
164	TP_STRUCT__entry(
165		__string(	wname,	widget->name		)
166		__string(	pname,	path->name ? path->name : DAPM_DIRECT)
167		__string(	pnname,	path->node[dir]->name	)
168		__field(	int,	path_node		)
169		__field(	int,	path_connect		)
170		__field(	int,	path_dir		)
171	),
172
173	TP_fast_assign(
174		__assign_str(wname, widget->name);
175		__assign_str(pname, path->name ? path->name : DAPM_DIRECT);
176		__assign_str(pnname, path->node[dir]->name);
177		__entry->path_connect = path->connect;
178		__entry->path_node = (long)path->node[dir];
179		__entry->path_dir = dir;
180	),
181
182	TP_printk("%c%s %s %s %s %s",
183		(int) __entry->path_node &&
184		(int) __entry->path_connect ? '*' : ' ',
185		__get_str(wname), DAPM_ARROW(__entry->path_dir),
186		__get_str(pname), DAPM_ARROW(__entry->path_dir),
187		__get_str(pnname))
188);
189
190TRACE_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
206	TP_printk("%s: found %d paths",
207		__entry->stream ? "capture" : "playback", __entry->paths)
208);
209
210TRACE_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
227TRACE_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->id		)
235		__field(	int,		mask			)
236		__field(	int,		val			)
237	),
238
239	TP_fast_assign(
240		__assign_str(name, jack->jack->id);
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
249TRACE_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->id		)
257		__field(	int,		val			)
258	),
259
260	TP_fast_assign(
261		__assign_str(name, jack->jack->id);
262		__entry->val = val;
263	),
264
265	TP_printk("jack=%s %x", __get_str(name), (int)__entry->val)
266);
267
268#endif /* _TRACE_ASOC_H */
269
270/* This part must be outside protection */
271#include <trace/define_trace.h>