aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars-Peter Clausen <lars@metafoo.de>2015-08-11 15:38:01 -0400
committerMark Brown <broonie@kernel.org>2015-08-13 07:40:16 -0400
commit6e588a0d839b51bae49852b68740a25cacc91978 (patch)
tree45b25b05c35879cd9589bad7d3bed2ccc59444ef
parenta3423b02cf745c1418f1f199646c450d6fc9ca4e (diff)
ASoC: dapm: Consolidate path trace events
The snd_soc_dapm_input_path and snd_soc_dapm_output_path trace events are identical except for the direction. Instead of having two events have a single one that has a field that contains the direction. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--include/trace/events/asoc.h53
-rw-r--r--sound/soc/soc-dapm.c9
2 files changed, 15 insertions, 47 deletions
diff --git a/include/trace/events/asoc.h b/include/trace/events/asoc.h
index 88cf39d96d0f..317a1ed2f4ac 100644
--- a/include/trace/events/asoc.h
+++ b/include/trace/events/asoc.h
@@ -8,6 +8,7 @@
8#include <linux/tracepoint.h> 8#include <linux/tracepoint.h>
9 9
10#define DAPM_DIRECT "(direct)" 10#define DAPM_DIRECT "(direct)"
11#define DAPM_ARROW(dir) (((dir) == SND_SOC_DAPM_DIR_OUT) ? "->" : "<-")
11 12
12struct snd_soc_jack; 13struct snd_soc_jack;
13struct snd_soc_codec; 14struct snd_soc_codec;
@@ -152,62 +153,38 @@ TRACE_EVENT(snd_soc_dapm_walk_done,
152 (int)__entry->path_checks, (int)__entry->neighbour_checks) 153 (int)__entry->path_checks, (int)__entry->neighbour_checks)
153); 154);
154 155
155TRACE_EVENT(snd_soc_dapm_output_path, 156TRACE_EVENT(snd_soc_dapm_path,
156 157
157 TP_PROTO(struct snd_soc_dapm_widget *widget, 158 TP_PROTO(struct snd_soc_dapm_widget *widget,
159 enum snd_soc_dapm_direction dir,
158 struct snd_soc_dapm_path *path), 160 struct snd_soc_dapm_path *path),
159 161
160 TP_ARGS(widget, path), 162 TP_ARGS(widget, dir, path),
161 163
162 TP_STRUCT__entry( 164 TP_STRUCT__entry(
163 __string( wname, widget->name ) 165 __string( wname, widget->name )
164 __string( pname, path->name ? path->name : DAPM_DIRECT) 166 __string( pname, path->name ? path->name : DAPM_DIRECT)
165 __string( psname, path->sink->name ) 167 __string( pnname, path->node[dir]->name )
166 __field( int, path_sink ) 168 __field( int, path_node )
167 __field( int, path_connect ) 169 __field( int, path_connect )
170 __field( int, path_dir )
168 ), 171 ),
169 172
170 TP_fast_assign( 173 TP_fast_assign(
171 __assign_str(wname, widget->name); 174 __assign_str(wname, widget->name);
172 __assign_str(pname, path->name ? path->name : DAPM_DIRECT); 175 __assign_str(pname, path->name ? path->name : DAPM_DIRECT);
173 __assign_str(psname, path->sink->name); 176 __assign_str(pnname, path->node[dir]->name);
174 __entry->path_connect = path->connect; 177 __entry->path_connect = path->connect;
175 __entry->path_sink = (long)path->sink; 178 __entry->path_node = (long)path->node[dir];
179 __entry->path_dir = dir;
176 ), 180 ),
177 181
178 TP_printk("%c%s -> %s -> %s", 182 TP_printk("%c%s %s %s %s %s",
179 (int) __entry->path_sink && 183 (int) __entry->path_node &&
180 (int) __entry->path_connect ? '*' : ' ', 184 (int) __entry->path_connect ? '*' : ' ',
181 __get_str(wname), __get_str(pname), __get_str(psname)) 185 __get_str(wname), DAPM_ARROW(__entry->path_dir),
182); 186 __get_str(pname), DAPM_ARROW(__entry->path_dir),
183 187 __get_str(pnname))
184TRACE_EVENT(snd_soc_dapm_input_path,
185
186 TP_PROTO(struct snd_soc_dapm_widget *widget,
187 struct snd_soc_dapm_path *path),
188
189 TP_ARGS(widget, path),
190
191 TP_STRUCT__entry(
192 __string( wname, widget->name )
193 __string( pname, path->name ? path->name : DAPM_DIRECT)
194 __string( psname, path->source->name )
195 __field( int, path_source )
196 __field( int, path_connect )
197 ),
198
199 TP_fast_assign(
200 __assign_str(wname, widget->name);
201 __assign_str(pname, path->name ? path->name : DAPM_DIRECT);
202 __assign_str(psname, path->source->name);
203 __entry->path_connect = path->connect;
204 __entry->path_source = (long)path->source;
205 ),
206
207 TP_printk("%c%s <- %s <- %s",
208 (int) __entry->path_source &&
209 (int) __entry->path_connect ? '*' : ' ',
210 __get_str(wname), __get_str(pname), __get_str(psname))
211); 188);
212 189
213TRACE_EVENT(snd_soc_dapm_connected, 190TRACE_EVENT(snd_soc_dapm_connected,
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
index 27b7fd96e819..cf2a0696b4a7 100644
--- a/sound/soc/soc-dapm.c
+++ b/sound/soc/soc-dapm.c
@@ -1047,15 +1047,6 @@ static int dapm_widget_list_create(struct snd_soc_dapm_widget_list **list,
1047 return 0; 1047 return 0;
1048} 1048}
1049 1049
1050static void trace_snd_soc_dapm_path(struct snd_soc_dapm_widget *w,
1051 enum snd_soc_dapm_direction dir, struct snd_soc_dapm_path *p)
1052{
1053 if (dir == SND_SOC_DAPM_DIR_IN)
1054 trace_snd_soc_dapm_input_path(w, p);
1055 else
1056 trace_snd_soc_dapm_output_path(w, p);
1057}
1058
1059/* 1050/*
1060 * Common implementation for is_connected_output_ep() and 1051 * Common implementation for is_connected_output_ep() and
1061 * is_connected_input_ep(). The function is inlined since the combined size of 1052 * is_connected_input_ep(). The function is inlined since the combined size of