#include <lttng/tracepoint-event.h>
#include <linux/ktime.h>
-#include <linux/version.h>
+#include <lttng/kernel-version.h>
#define DAPM_DIRECT "(direct)"
+#define DAPM_COMPONENT_NONE "(none)"
#ifndef _TRACE_ASOC_DEF
#define _TRACE_ASOC_DEF
struct snd_soc_jack;
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,19,0))
-struct snd_soc_codec;
-#endif
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0) && \
- LINUX_VERSION_CODE < KERNEL_VERSION(3,16,0))
-struct snd_soc_platform;
-#endif
struct snd_soc_card;
struct snd_soc_dapm_widget;
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
struct snd_soc_dapm_path;
#endif
-#endif
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0) \
- || LTTNG_RHEL_KERNEL_RANGE(3,10,0,514,0,0, 3,11,0,0,0,0))
-#define CODEC_NAME_FIELD component.name
-#define CODEC_ID_FIELD component.id
-#else
-#define CODEC_NAME_FIELD name
-#define CODEC_ID_FIELD id
-#endif
-
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,16,0))
-/*
- * Log register events
- */
-LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_reg,
+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,9,0))
+LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_dapm_context,
- TP_PROTO(struct snd_soc_codec *codec, unsigned int reg,
- unsigned int val),
+ TP_PROTO(struct snd_soc_dapm_context *dapm, int val),
- TP_ARGS(codec, reg, val),
+ TP_ARGS(dapm, val),
TP_FIELDS(
- ctf_string(name, codec->CODEC_NAME_FIELD)
- ctf_integer(int, id, codec->CODEC_ID_FIELD)
- ctf_integer(unsigned int, reg, reg)
- ctf_integer(unsigned int, val, val)
+ ctf_string(name, dapm->card->name)
+ ctf_string(component, dapm->component ? dapm->component->name : DAPM_COMPONENT_NONE)
+ ctf_integer(int, val, val)
)
)
-LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_reg, snd_soc_reg_write,
+LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_context, snd_soc_bias_level_start,
- asoc_snd_soc_reg_write,
+ asoc_snd_soc_bias_level_start,
- TP_PROTO(struct snd_soc_codec *codec, unsigned int reg,
- unsigned int val),
+ TP_PROTO(struct snd_soc_dapm_context *dapm, int val),
- TP_ARGS(codec, reg, val)
+ TP_ARGS(dapm, val)
)
-LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_reg, snd_soc_reg_read,
+LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_context, snd_soc_bias_level_done,
- asoc_snd_soc_reg_read,
+ asoc_snd_soc_bias_level_done,
- TP_PROTO(struct snd_soc_codec *codec, unsigned int reg,
- unsigned int val),
+ TP_PROTO(struct snd_soc_dapm_context *dapm, int val),
- TP_ARGS(codec, reg, val)
+ TP_ARGS(dapm, val)
)
-#endif
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0) && \
- LINUX_VERSION_CODE < KERNEL_VERSION(3,16,0))
-LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_preg,
+#else
+LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_card,
- TP_PROTO(struct snd_soc_platform *platform, unsigned int reg,
- unsigned int val),
+ TP_PROTO(struct snd_soc_card *card, int val),
- TP_ARGS(platform, reg, val),
+ TP_ARGS(card, val),
TP_FIELDS(
- ctf_string(name, platform->CODEC_NAME_FIELD)
- ctf_integer(int, id, platform->CODEC_ID_FIELD)
- ctf_integer(unsigned int, reg, reg)
- ctf_integer(unsigned int, val, val)
+ ctf_string(name, card->name)
+ ctf_integer(int, val, val)
)
)
-LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_preg, snd_soc_preg_write,
+LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_card, snd_soc_bias_level_start,
- asoc_snd_soc_preg_write,
+ asoc_snd_soc_bias_level_start,
- TP_PROTO(struct snd_soc_platform *platform, unsigned int reg,
- unsigned int val),
+ TP_PROTO(struct snd_soc_card *card, int val),
- TP_ARGS(platform, reg, val)
+ TP_ARGS(card, val)
)
-LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_preg, snd_soc_preg_read,
+LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_card, snd_soc_bias_level_done,
- asoc_snd_soc_preg_read,
+ asoc_snd_soc_bias_level_done,
- TP_PROTO(struct snd_soc_platform *platform, unsigned int reg,
- unsigned int val),
+ TP_PROTO(struct snd_soc_card *card, int val),
- TP_ARGS(platform, reg, val)
+ TP_ARGS(card, val)
)
#endif
-LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_card,
+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,9,0))
+LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_dapm_basic,
- TP_PROTO(struct snd_soc_card *card, int val),
+ TP_PROTO(struct snd_soc_card *card, int event),
- TP_ARGS(card, val),
+ TP_ARGS(card, event),
TP_FIELDS(
ctf_string(name, card->name)
- ctf_integer(int, val, val)
+ ctf_integer(int, event, event)
)
)
+LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_basic, snd_soc_dapm_start,
-LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_card, snd_soc_bias_level_start,
-
- asoc_snd_soc_bias_level_start,
+ asoc_snd_soc_dapm_start,
- TP_PROTO(struct snd_soc_card *card, int val),
+ TP_PROTO(struct snd_soc_card *card, int event),
- TP_ARGS(card, val)
+ TP_ARGS(card, event)
)
-LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_card, snd_soc_bias_level_done,
+LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_basic, snd_soc_dapm_done,
- asoc_snd_soc_bias_level_done,
+ asoc_snd_soc_dapm_done,
- TP_PROTO(struct snd_soc_card *card, int val),
+ TP_PROTO(struct snd_soc_card *card, int event),
- TP_ARGS(card, val)
+ TP_ARGS(card, event)
)
-
+#else
LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_dapm_basic,
TP_PROTO(struct snd_soc_card *card),
TP_ARGS(card)
)
+#endif
LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_dapm_widget,
)
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_dapm_walk_done,
asoc_snd_soc_dapm_walk_done,
ctf_integer(int, neighbour_checks, card->dapm_stats.neighbour_checks)
)
)
-#endif
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0))
LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_dapm_path,
asoc_snd_soc_dapm_path,
ctf_integer(int, path_dir, dir)
)
)
-#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
-LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_dapm_output_path,
-
- asoc_snd_soc_dapm_output_path,
-
- TP_PROTO(struct snd_soc_dapm_widget *widget,
- struct snd_soc_dapm_path *path),
-
- TP_ARGS(widget, path),
-
- TP_FIELDS(
- ctf_string(wname, widget->name)
- ctf_string(pname, path->name ? path->name : DAPM_DIRECT)
- ctf_string(psname, path->sink->name)
- ctf_integer(int, path_sink, (long) path->sink)
- ctf_integer(int, path_connect, path->connect)
- )
-)
-
-LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_dapm_input_path,
-
- asoc_snd_soc_dapm_input_path,
-
- TP_PROTO(struct snd_soc_dapm_widget *widget,
- struct snd_soc_dapm_path *path),
-
- TP_ARGS(widget, path),
-
- TP_FIELDS(
- ctf_string(wname, widget->name)
- ctf_string(pname,path->name ? path->name : DAPM_DIRECT)
- ctf_string(psname, path->source->name)
- ctf_integer(int, path_source, (long) path->source)
- ctf_integer(int, path_connect, path->connect)
- )
-)
-#endif
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_dapm_connected,
asoc_snd_soc_dapm_connected,
ctf_integer(int, stream, stream)
)
)
-#endif
LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_jack_irq,
)
)
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_jack_report,
asoc_snd_soc_jack_report,
ctf_integer(int, val, val)
)
)
-#else
-LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_jack_report,
-
- asoc_snd_soc_jack_report,
-
- TP_PROTO(struct snd_soc_jack *jack, int mask, int val),
-
- TP_ARGS(jack, mask, val),
-
- TP_FIELDS(
- ctf_string(name, jack->jack->name)
- ctf_integer(int, mask, mask)
- ctf_integer(int, val, val)
- )
-)
-
-LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_jack_notify,
-
- asoc_snd_soc_jack_notify,
-
- TP_PROTO(struct snd_soc_jack *jack, int val),
-
- TP_ARGS(jack, val),
-
- TP_FIELDS(
- ctf_string(name, jack->jack->name)
- ctf_integer(int, val, val)
- )
-)
-#endif
-
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,19,0))
-LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_cache_sync,
-
- asoc_snd_soc_cache_sync,
-
- TP_PROTO(struct snd_soc_codec *codec, const char *type,
- const char *status),
-
- TP_ARGS(codec, type, status),
-
- TP_FIELDS(
- ctf_string(name, codec->CODEC_NAME_FIELD)
- ctf_string(status, status)
- ctf_string(type, type)
- ctf_integer(int, id, codec->CODEC_ID_FIELD)
- )
-)
-#endif
#endif /* LTTNG_TRACE_ASOC_H */