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)"
14 #ifndef _TRACE_ASOC_DEF
15 #define _TRACE_ASOC_DEF
17 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,19,0))
20 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,1,0) && \
21 LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,16,0))
22 struct snd_soc_platform
;
25 struct snd_soc_dapm_widget
;
26 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,5,0))
27 struct snd_soc_dapm_path
;
31 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,16,0) \
32 || LTTNG_RHEL_KERNEL_RANGE(3,10,0,514,0,0, 3,11,0,0,0,0))
33 #define CODEC_NAME_FIELD component.name
34 #define CODEC_ID_FIELD component.id
36 #define CODEC_NAME_FIELD name
37 #define CODEC_ID_FIELD id
40 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,16,0))
44 LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_reg
,
46 TP_PROTO(struct snd_soc_codec
*codec
, unsigned int reg
,
49 TP_ARGS(codec
, reg
, val
),
52 ctf_string(name
, codec
->CODEC_NAME_FIELD
)
53 ctf_integer(int, id
, codec
->CODEC_ID_FIELD
)
54 ctf_integer(unsigned int, reg
, reg
)
55 ctf_integer(unsigned int, val
, val
)
59 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_reg
, snd_soc_reg_write
,
61 asoc_snd_soc_reg_write
,
63 TP_PROTO(struct snd_soc_codec
*codec
, unsigned int reg
,
66 TP_ARGS(codec
, reg
, val
)
70 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_reg
, snd_soc_reg_read
,
72 asoc_snd_soc_reg_read
,
74 TP_PROTO(struct snd_soc_codec
*codec
, unsigned int reg
,
77 TP_ARGS(codec
, reg
, val
)
82 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,1,0) && \
83 LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,16,0))
84 LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_preg
,
86 TP_PROTO(struct snd_soc_platform
*platform
, unsigned int reg
,
89 TP_ARGS(platform
, reg
, val
),
92 ctf_string(name
, platform
->CODEC_NAME_FIELD
)
93 ctf_integer(int, id
, platform
->CODEC_ID_FIELD
)
94 ctf_integer(unsigned int, reg
, reg
)
95 ctf_integer(unsigned int, val
, val
)
99 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_preg
, snd_soc_preg_write
,
101 asoc_snd_soc_preg_write
,
103 TP_PROTO(struct snd_soc_platform
*platform
, unsigned int reg
,
106 TP_ARGS(platform
, reg
, val
)
110 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_preg
, snd_soc_preg_read
,
112 asoc_snd_soc_preg_read
,
114 TP_PROTO(struct snd_soc_platform
*platform
, unsigned int reg
,
117 TP_ARGS(platform
, reg
, val
)
122 LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_card
,
124 TP_PROTO(struct snd_soc_card
*card
, int val
),
129 ctf_string(name
, card
->name
)
130 ctf_integer(int, val
, val
)
134 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_card
, snd_soc_bias_level_start
,
136 asoc_snd_soc_bias_level_start
,
138 TP_PROTO(struct snd_soc_card
*card
, int val
),
144 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_card
, snd_soc_bias_level_done
,
146 asoc_snd_soc_bias_level_done
,
148 TP_PROTO(struct snd_soc_card
*card
, int val
),
154 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,9,0))
155 LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_dapm_basic
,
157 TP_PROTO(struct snd_soc_card
*card
, int event
),
159 TP_ARGS(card
, event
),
162 ctf_string(name
, card
->name
)
163 ctf_integer(int, event
, event
)
166 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_basic
, snd_soc_dapm_start
,
168 asoc_snd_soc_dapm_start
,
170 TP_PROTO(struct snd_soc_card
*card
, int event
),
176 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_basic
, snd_soc_dapm_done
,
178 asoc_snd_soc_dapm_done
,
180 TP_PROTO(struct snd_soc_card
*card
, int event
),
186 LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_dapm_basic
,
188 TP_PROTO(struct snd_soc_card
*card
),
193 ctf_string(name
, card
->name
)
197 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_basic
, snd_soc_dapm_start
,
199 asoc_snd_soc_dapm_start
,
201 TP_PROTO(struct snd_soc_card
*card
),
207 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_basic
, snd_soc_dapm_done
,
209 asoc_snd_soc_dapm_done
,
211 TP_PROTO(struct snd_soc_card
*card
),
218 LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_dapm_widget
,
220 TP_PROTO(struct snd_soc_dapm_widget
*w
, int val
),
225 ctf_string(name
, w
->name
)
226 ctf_integer(int, val
, val
)
230 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_widget
, snd_soc_dapm_widget_power
,
232 asoc_snd_soc_dapm_widget_power
,
234 TP_PROTO(struct snd_soc_dapm_widget
*w
, int val
),
240 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_widget
, snd_soc_dapm_widget_event_start
,
242 asoc_snd_soc_dapm_widget_event_start
,
244 TP_PROTO(struct snd_soc_dapm_widget
*w
, int val
),
250 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_widget
, snd_soc_dapm_widget_event_done
,
252 asoc_snd_soc_dapm_widget_event_done
,
254 TP_PROTO(struct snd_soc_dapm_widget
*w
, int val
),
260 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,2,0))
261 LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_dapm_walk_done
,
263 asoc_snd_soc_dapm_walk_done
,
265 TP_PROTO(struct snd_soc_card
*card
),
270 ctf_string(name
, card
->name
)
271 ctf_integer(int, power_checks
, card
->dapm_stats
.power_checks
)
272 ctf_integer(int, path_checks
, card
->dapm_stats
.path_checks
)
273 ctf_integer(int, neighbour_checks
, card
->dapm_stats
.neighbour_checks
)
278 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,3,0))
279 LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_dapm_path
,
281 asoc_snd_soc_dapm_path
,
283 TP_PROTO(struct snd_soc_dapm_widget
*widget
,
284 enum snd_soc_dapm_direction dir
,
285 struct snd_soc_dapm_path
*path
),
287 TP_ARGS(widget
, dir
, path
),
290 ctf_string(wname
, widget
->name
)
291 ctf_string(pname
, path
->name
? path
->name
: DAPM_DIRECT
)
292 ctf_string(pnname
, path
->node
[dir
]->name
)
293 ctf_integer(int, path_node
, (long) path
->node
[dir
])
294 ctf_integer(int, path_connect
, path
->connect
)
295 ctf_integer(int, path_dir
, dir
)
298 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,5,0))
299 LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_dapm_output_path
,
301 asoc_snd_soc_dapm_output_path
,
303 TP_PROTO(struct snd_soc_dapm_widget
*widget
,
304 struct snd_soc_dapm_path
*path
),
306 TP_ARGS(widget
, path
),
309 ctf_string(wname
, widget
->name
)
310 ctf_string(pname
, path
->name
? path
->name
: DAPM_DIRECT
)
311 ctf_string(psname
, path
->sink
->name
)
312 ctf_integer(int, path_sink
, (long) path
->sink
)
313 ctf_integer(int, path_connect
, path
->connect
)
317 LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_dapm_input_path
,
319 asoc_snd_soc_dapm_input_path
,
321 TP_PROTO(struct snd_soc_dapm_widget
*widget
,
322 struct snd_soc_dapm_path
*path
),
324 TP_ARGS(widget
, path
),
327 ctf_string(wname
, widget
->name
)
328 ctf_string(pname
,path
->name
? path
->name
: DAPM_DIRECT
)
329 ctf_string(psname
, path
->source
->name
)
330 ctf_integer(int, path_source
, (long) path
->source
)
331 ctf_integer(int, path_connect
, path
->connect
)
336 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,5,0))
337 LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_dapm_connected
,
339 asoc_snd_soc_dapm_connected
,
341 TP_PROTO(int paths
, int stream
),
343 TP_ARGS(paths
, stream
),
346 ctf_integer(int, paths
, paths
)
347 ctf_integer(int, stream
, stream
)
352 LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_jack_irq
,
354 asoc_snd_soc_jack_irq
,
356 TP_PROTO(const char *name
),
361 ctf_string(name
, name
)
365 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,5,0))
366 LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_jack_report
,
368 asoc_snd_soc_jack_report
,
370 TP_PROTO(struct snd_soc_jack
*jack
, int mask
, int val
),
372 TP_ARGS(jack
, mask
, val
),
375 ctf_string(name
, jack
->jack
->id
)
376 ctf_integer(int, mask
, mask
)
377 ctf_integer(int, val
, val
)
381 LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_jack_notify
,
383 asoc_snd_soc_jack_notify
,
385 TP_PROTO(struct snd_soc_jack
*jack
, int val
),
390 ctf_string(name
, jack
->jack
->id
)
391 ctf_integer(int, val
, val
)
395 LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_jack_report
,
397 asoc_snd_soc_jack_report
,
399 TP_PROTO(struct snd_soc_jack
*jack
, int mask
, int val
),
401 TP_ARGS(jack
, mask
, val
),
404 ctf_string(name
, jack
->jack
->name
)
405 ctf_integer(int, mask
, mask
)
406 ctf_integer(int, val
, val
)
410 LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_jack_notify
,
412 asoc_snd_soc_jack_notify
,
414 TP_PROTO(struct snd_soc_jack
*jack
, int val
),
419 ctf_string(name
, jack
->jack
->name
)
420 ctf_integer(int, val
, val
)
425 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,19,0))
426 LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_cache_sync
,
428 asoc_snd_soc_cache_sync
,
430 TP_PROTO(struct snd_soc_codec
*codec
, const char *type
,
433 TP_ARGS(codec
, type
, status
),
436 ctf_string(name
, codec
->CODEC_NAME_FIELD
)
437 ctf_string(status
, status
)
438 ctf_string(type
, type
)
439 ctf_integer(int, id
, codec
->CODEC_ID_FIELD
)
444 #endif /* LTTNG_TRACE_ASOC_H */
446 /* This part must be outside protection */
447 #include <lttng/define_trace.h>