Linux Audio

Check our new training course

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