1 /* SPDX-License-Identifier: GPL-2.0-only */
3 #define TRACE_SYSTEM asoc
5 #if !defined(LTTNG_TRACE_ASOC_H) || defined(TRACE_HEADER_MULTI_READ)
6 #define LTTNG_TRACE_ASOC_H
8 #include <lttng/tracepoint-event.h>
9 #include <linux/ktime.h>
10 #include <lttng/kernel-version.h>
12 #define DAPM_DIRECT "(direct)"
13 #define DAPM_COMPONENT_NONE "(none)"
15 #ifndef _TRACE_ASOC_DEF
16 #define _TRACE_ASOC_DEF
18 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,19,0))
21 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,1,0) && \
22 LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,16,0))
23 struct snd_soc_platform
;
26 struct snd_soc_dapm_widget
;
27 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,5,0))
28 struct snd_soc_dapm_path
;
32 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,16,0) \
33 || LTTNG_RHEL_KERNEL_RANGE(3,10,0,514,0,0, 3,11,0,0,0,0))
34 #define CODEC_NAME_FIELD component.name
35 #define CODEC_ID_FIELD component.id
37 #define CODEC_NAME_FIELD name
38 #define CODEC_ID_FIELD id
41 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,16,0))
45 LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_reg
,
47 TP_PROTO(struct snd_soc_codec
*codec
, unsigned int reg
,
50 TP_ARGS(codec
, reg
, val
),
53 ctf_string(name
, codec
->CODEC_NAME_FIELD
)
54 ctf_integer(int, id
, codec
->CODEC_ID_FIELD
)
55 ctf_integer(unsigned int, reg
, reg
)
56 ctf_integer(unsigned int, val
, val
)
60 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_reg
, snd_soc_reg_write
,
62 asoc_snd_soc_reg_write
,
64 TP_PROTO(struct snd_soc_codec
*codec
, unsigned int reg
,
67 TP_ARGS(codec
, reg
, val
)
71 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_reg
, snd_soc_reg_read
,
73 asoc_snd_soc_reg_read
,
75 TP_PROTO(struct snd_soc_codec
*codec
, unsigned int reg
,
78 TP_ARGS(codec
, reg
, val
)
83 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,1,0) && \
84 LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,16,0))
85 LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_preg
,
87 TP_PROTO(struct snd_soc_platform
*platform
, unsigned int reg
,
90 TP_ARGS(platform
, reg
, val
),
93 ctf_string(name
, platform
->CODEC_NAME_FIELD
)
94 ctf_integer(int, id
, platform
->CODEC_ID_FIELD
)
95 ctf_integer(unsigned int, reg
, reg
)
96 ctf_integer(unsigned int, val
, val
)
100 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_preg
, snd_soc_preg_write
,
102 asoc_snd_soc_preg_write
,
104 TP_PROTO(struct snd_soc_platform
*platform
, unsigned int reg
,
107 TP_ARGS(platform
, reg
, val
)
111 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_preg
, snd_soc_preg_read
,
113 asoc_snd_soc_preg_read
,
115 TP_PROTO(struct snd_soc_platform
*platform
, unsigned int reg
,
118 TP_ARGS(platform
, reg
, val
)
123 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,9,0))
124 LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_dapm_context
,
126 TP_PROTO(struct snd_soc_dapm_context
*dapm
, int val
),
131 ctf_string(name
, dapm
->card
->name
)
132 ctf_string(component
, dapm
->component
? dapm
->component
->name
: DAPM_COMPONENT_NONE
)
133 ctf_integer(int, val
, val
)
137 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_context
, snd_soc_bias_level_start
,
139 asoc_snd_soc_bias_level_start
,
141 TP_PROTO(struct snd_soc_dapm_context
*dapm
, int val
),
147 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_context
, snd_soc_bias_level_done
,
149 asoc_snd_soc_bias_level_done
,
151 TP_PROTO(struct snd_soc_dapm_context
*dapm
, int val
),
157 LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_card
,
159 TP_PROTO(struct snd_soc_card
*card
, int val
),
164 ctf_string(name
, card
->name
)
165 ctf_integer(int, val
, val
)
169 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_card
, snd_soc_bias_level_start
,
171 asoc_snd_soc_bias_level_start
,
173 TP_PROTO(struct snd_soc_card
*card
, int val
),
179 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_card
, snd_soc_bias_level_done
,
181 asoc_snd_soc_bias_level_done
,
183 TP_PROTO(struct snd_soc_card
*card
, int val
),
190 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,9,0))
191 LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_dapm_basic
,
193 TP_PROTO(struct snd_soc_card
*card
, int event
),
195 TP_ARGS(card
, event
),
198 ctf_string(name
, card
->name
)
199 ctf_integer(int, event
, event
)
202 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_basic
, snd_soc_dapm_start
,
204 asoc_snd_soc_dapm_start
,
206 TP_PROTO(struct snd_soc_card
*card
, int event
),
212 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_basic
, snd_soc_dapm_done
,
214 asoc_snd_soc_dapm_done
,
216 TP_PROTO(struct snd_soc_card
*card
, int event
),
222 LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_dapm_basic
,
224 TP_PROTO(struct snd_soc_card
*card
),
229 ctf_string(name
, card
->name
)
233 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_basic
, snd_soc_dapm_start
,
235 asoc_snd_soc_dapm_start
,
237 TP_PROTO(struct snd_soc_card
*card
),
243 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_basic
, snd_soc_dapm_done
,
245 asoc_snd_soc_dapm_done
,
247 TP_PROTO(struct snd_soc_card
*card
),
254 LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_dapm_widget
,
256 TP_PROTO(struct snd_soc_dapm_widget
*w
, int val
),
261 ctf_string(name
, w
->name
)
262 ctf_integer(int, val
, val
)
266 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_widget
, snd_soc_dapm_widget_power
,
268 asoc_snd_soc_dapm_widget_power
,
270 TP_PROTO(struct snd_soc_dapm_widget
*w
, int val
),
276 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_widget
, snd_soc_dapm_widget_event_start
,
278 asoc_snd_soc_dapm_widget_event_start
,
280 TP_PROTO(struct snd_soc_dapm_widget
*w
, int val
),
286 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_widget
, snd_soc_dapm_widget_event_done
,
288 asoc_snd_soc_dapm_widget_event_done
,
290 TP_PROTO(struct snd_soc_dapm_widget
*w
, int val
),
296 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,2,0))
297 LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_dapm_walk_done
,
299 asoc_snd_soc_dapm_walk_done
,
301 TP_PROTO(struct snd_soc_card
*card
),
306 ctf_string(name
, card
->name
)
307 ctf_integer(int, power_checks
, card
->dapm_stats
.power_checks
)
308 ctf_integer(int, path_checks
, card
->dapm_stats
.path_checks
)
309 ctf_integer(int, neighbour_checks
, card
->dapm_stats
.neighbour_checks
)
314 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,3,0))
315 LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_dapm_path
,
317 asoc_snd_soc_dapm_path
,
319 TP_PROTO(struct snd_soc_dapm_widget
*widget
,
320 enum snd_soc_dapm_direction dir
,
321 struct snd_soc_dapm_path
*path
),
323 TP_ARGS(widget
, dir
, path
),
326 ctf_string(wname
, widget
->name
)
327 ctf_string(pname
, path
->name
? path
->name
: DAPM_DIRECT
)
328 ctf_string(pnname
, path
->node
[dir
]->name
)
329 ctf_integer(int, path_node
, (long) path
->node
[dir
])
330 ctf_integer(int, path_connect
, path
->connect
)
331 ctf_integer(int, path_dir
, dir
)
334 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,5,0))
335 LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_dapm_output_path
,
337 asoc_snd_soc_dapm_output_path
,
339 TP_PROTO(struct snd_soc_dapm_widget
*widget
,
340 struct snd_soc_dapm_path
*path
),
342 TP_ARGS(widget
, path
),
345 ctf_string(wname
, widget
->name
)
346 ctf_string(pname
, path
->name
? path
->name
: DAPM_DIRECT
)
347 ctf_string(psname
, path
->sink
->name
)
348 ctf_integer(int, path_sink
, (long) path
->sink
)
349 ctf_integer(int, path_connect
, path
->connect
)
353 LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_dapm_input_path
,
355 asoc_snd_soc_dapm_input_path
,
357 TP_PROTO(struct snd_soc_dapm_widget
*widget
,
358 struct snd_soc_dapm_path
*path
),
360 TP_ARGS(widget
, path
),
363 ctf_string(wname
, widget
->name
)
364 ctf_string(pname
,path
->name
? path
->name
: DAPM_DIRECT
)
365 ctf_string(psname
, path
->source
->name
)
366 ctf_integer(int, path_source
, (long) path
->source
)
367 ctf_integer(int, path_connect
, path
->connect
)
372 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,5,0))
373 LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_dapm_connected
,
375 asoc_snd_soc_dapm_connected
,
377 TP_PROTO(int paths
, int stream
),
379 TP_ARGS(paths
, stream
),
382 ctf_integer(int, paths
, paths
)
383 ctf_integer(int, stream
, stream
)
388 LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_jack_irq
,
390 asoc_snd_soc_jack_irq
,
392 TP_PROTO(const char *name
),
397 ctf_string(name
, name
)
401 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,5,0))
402 LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_jack_report
,
404 asoc_snd_soc_jack_report
,
406 TP_PROTO(struct snd_soc_jack
*jack
, int mask
, int val
),
408 TP_ARGS(jack
, mask
, val
),
411 ctf_string(name
, jack
->jack
->id
)
412 ctf_integer(int, mask
, mask
)
413 ctf_integer(int, val
, val
)
417 LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_jack_notify
,
419 asoc_snd_soc_jack_notify
,
421 TP_PROTO(struct snd_soc_jack
*jack
, int val
),
426 ctf_string(name
, jack
->jack
->id
)
427 ctf_integer(int, val
, val
)
431 LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_jack_report
,
433 asoc_snd_soc_jack_report
,
435 TP_PROTO(struct snd_soc_jack
*jack
, int mask
, int val
),
437 TP_ARGS(jack
, mask
, val
),
440 ctf_string(name
, jack
->jack
->name
)
441 ctf_integer(int, mask
, mask
)
442 ctf_integer(int, val
, val
)
446 LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_jack_notify
,
448 asoc_snd_soc_jack_notify
,
450 TP_PROTO(struct snd_soc_jack
*jack
, int val
),
455 ctf_string(name
, jack
->jack
->name
)
456 ctf_integer(int, val
, val
)
461 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,19,0))
462 LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_cache_sync
,
464 asoc_snd_soc_cache_sync
,
466 TP_PROTO(struct snd_soc_codec
*codec
, const char *type
,
469 TP_ARGS(codec
, type
, status
),
472 ctf_string(name
, codec
->CODEC_NAME_FIELD
)
473 ctf_string(status
, status
)
474 ctf_string(type
, type
)
475 ctf_integer(int, id
, codec
->CODEC_ID_FIELD
)
480 #endif /* LTTNG_TRACE_ASOC_H */
482 /* This part must be outside protection */
483 #include <lttng/define_trace.h>