X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=instrumentation%2Fevents%2Flttng-module%2Fasoc.h;h=bf9cf86f7fef3b81baab32438b155202aa476af5;hb=fc6d6f213148c9babf46500058b10ff99db7d4d0;hp=6ffc923de4037859157bfa7c085458e439c3b378;hpb=d3ac4d63d21c643df5b09d9d7888eb0c4122379c;p=lttng-modules.git diff --git a/instrumentation/events/lttng-module/asoc.h b/instrumentation/events/lttng-module/asoc.h index 6ffc923d..bf9cf86f 100644 --- a/instrumentation/events/lttng-module/asoc.h +++ b/instrumentation/events/lttng-module/asoc.h @@ -8,6 +8,8 @@ #include #include +#define DAPM_DIRECT "(direct)" + #ifndef _TRACE_ASOC_DEF #define _TRACE_ASOC_DEF struct snd_soc_jack; @@ -19,6 +21,14 @@ struct snd_soc_card; struct snd_soc_dapm_widget; #endif +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,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 + /* * Log register events */ @@ -30,15 +40,15 @@ DECLARE_EVENT_CLASS(snd_soc_reg, TP_ARGS(codec, reg, val), TP_STRUCT__entry( - __string( name, codec->name ) + __string( name, codec->CODEC_NAME_FIELD ) __field( int, id ) __field( unsigned int, reg ) __field( unsigned int, val ) ), TP_fast_assign( - tp_strcpy(name, codec->name) - tp_assign(id, codec->id) + tp_strcpy(name, codec->CODEC_NAME_FIELD) + tp_assign(id, codec->CODEC_ID_FIELD) tp_assign(reg, reg) tp_assign(val, val) ), @@ -75,15 +85,15 @@ DECLARE_EVENT_CLASS(snd_soc_preg, TP_ARGS(platform, reg, val), TP_STRUCT__entry( - __string( name, platform->name ) + __string( name, platform->CODEC_NAME_FIELD ) __field( int, id ) __field( unsigned int, reg ) __field( unsigned int, val ) ), TP_fast_assign( - tp_strcpy(name, platform->name) - tp_assign(id, platform->id) + tp_strcpy(name, platform->CODEC_NAME_FIELD) + tp_assign(id, platform->CODEC_ID_FIELD) tp_assign(reg, reg) tp_assign(val, val) ), @@ -251,6 +261,86 @@ TRACE_EVENT(snd_soc_dapm_walk_done, ) #endif +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)) +TRACE_EVENT(snd_soc_dapm_output_path, + + TP_PROTO(struct snd_soc_dapm_widget *widget, + struct snd_soc_dapm_path *path), + + TP_ARGS(widget, path), + + TP_STRUCT__entry( + __string( wname, widget->name ) + __string( pname, path->name ? path->name : DAPM_DIRECT) + __string( psname, path->sink->name ) + __field( int, path_sink ) + __field( int, path_connect ) + ), + + TP_fast_assign( + tp_strcpy(wname, widget->name) + tp_strcpy(pname, path->name ? path->name : DAPM_DIRECT) + tp_strcpy(psname, path->sink->name) + tp_assign(path_connect, path->connect) + tp_assign(path_sink, (long)path->sink) + ), + + TP_printk("%c%s -> %s -> %s\n", + (int) __entry->path_sink && + (int) __entry->path_connect ? '*' : ' ', + __get_str(wname), __get_str(pname), __get_str(psname)) +) + +TRACE_EVENT(snd_soc_dapm_input_path, + + TP_PROTO(struct snd_soc_dapm_widget *widget, + struct snd_soc_dapm_path *path), + + TP_ARGS(widget, path), + + TP_STRUCT__entry( + __string( wname, widget->name ) + __string( pname, path->name ? path->name : DAPM_DIRECT) + __string( psname, path->source->name ) + __field( int, path_source ) + __field( int, path_connect ) + ), + + TP_fast_assign( + tp_strcpy(wname, widget->name) + tp_strcpy(pname, path->name ? path->name : DAPM_DIRECT) + tp_strcpy(psname, path->source->name) + tp_assign(path_connect, path->connect) + tp_assign(path_source, (long)path->source) + ), + + TP_printk("%c%s <- %s <- %s\n", + (int) __entry->path_source && + (int) __entry->path_connect ? '*' : ' ', + __get_str(wname), __get_str(pname), __get_str(psname)) +) + +TRACE_EVENT(snd_soc_dapm_connected, + + TP_PROTO(int paths, int stream), + + TP_ARGS(paths, stream), + + TP_STRUCT__entry( + __field( int, paths ) + __field( int, stream ) + ), + + TP_fast_assign( + tp_assign(paths, paths) + tp_assign(stream, stream) + ), + + TP_printk("%s: found %d paths\n", + __entry->stream ? "capture" : "playback", __entry->paths) +) +#endif + TRACE_EVENT(snd_soc_jack_irq, TP_PROTO(const char *name), @@ -317,17 +407,17 @@ TRACE_EVENT(snd_soc_cache_sync, TP_ARGS(codec, type, status), TP_STRUCT__entry( - __string( name, codec->name ) + __string( name, codec->CODEC_NAME_FIELD ) __string( status, status ) __string( type, type ) __field( int, id ) ), TP_fast_assign( - tp_strcpy(name, codec->name) + tp_strcpy(name, codec->CODEC_NAME_FIELD) tp_strcpy(status, status) tp_strcpy(type, type) - tp_assign(id, codec->id) + tp_assign(id, codec->CODEC_ID_FIELD) ), TP_printk("codec=%s.%d type=%s status=%s", __get_str(name),