0001
0002 #undef TRACE_SYSTEM
0003 #define TRACE_SYSTEM asoc
0004
0005 #if !defined(_TRACE_ASOC_H) || defined(TRACE_HEADER_MULTI_READ)
0006 #define _TRACE_ASOC_H
0007
0008 #include <linux/ktime.h>
0009 #include <linux/tracepoint.h>
0010 #include <sound/jack.h>
0011
0012 #define DAPM_DIRECT "(direct)"
0013 #define DAPM_ARROW(dir) (((dir) == SND_SOC_DAPM_DIR_OUT) ? "->" : "<-")
0014
0015 struct snd_soc_jack;
0016 struct snd_soc_card;
0017 struct snd_soc_dapm_widget;
0018 struct snd_soc_dapm_path;
0019
0020 DECLARE_EVENT_CLASS(snd_soc_card,
0021
0022 TP_PROTO(struct snd_soc_card *card, int val),
0023
0024 TP_ARGS(card, val),
0025
0026 TP_STRUCT__entry(
0027 __string( name, card->name )
0028 __field( int, val )
0029 ),
0030
0031 TP_fast_assign(
0032 __assign_str(name, card->name);
0033 __entry->val = val;
0034 ),
0035
0036 TP_printk("card=%s val=%d", __get_str(name), (int)__entry->val)
0037 );
0038
0039 DEFINE_EVENT(snd_soc_card, snd_soc_bias_level_start,
0040
0041 TP_PROTO(struct snd_soc_card *card, int val),
0042
0043 TP_ARGS(card, val)
0044
0045 );
0046
0047 DEFINE_EVENT(snd_soc_card, snd_soc_bias_level_done,
0048
0049 TP_PROTO(struct snd_soc_card *card, int val),
0050
0051 TP_ARGS(card, val)
0052
0053 );
0054
0055 DECLARE_EVENT_CLASS(snd_soc_dapm_basic,
0056
0057 TP_PROTO(struct snd_soc_card *card),
0058
0059 TP_ARGS(card),
0060
0061 TP_STRUCT__entry(
0062 __string( name, card->name )
0063 ),
0064
0065 TP_fast_assign(
0066 __assign_str(name, card->name);
0067 ),
0068
0069 TP_printk("card=%s", __get_str(name))
0070 );
0071
0072 DEFINE_EVENT(snd_soc_dapm_basic, snd_soc_dapm_start,
0073
0074 TP_PROTO(struct snd_soc_card *card),
0075
0076 TP_ARGS(card)
0077
0078 );
0079
0080 DEFINE_EVENT(snd_soc_dapm_basic, snd_soc_dapm_done,
0081
0082 TP_PROTO(struct snd_soc_card *card),
0083
0084 TP_ARGS(card)
0085
0086 );
0087
0088 DECLARE_EVENT_CLASS(snd_soc_dapm_widget,
0089
0090 TP_PROTO(struct snd_soc_dapm_widget *w, int val),
0091
0092 TP_ARGS(w, val),
0093
0094 TP_STRUCT__entry(
0095 __string( name, w->name )
0096 __field( int, val )
0097 ),
0098
0099 TP_fast_assign(
0100 __assign_str(name, w->name);
0101 __entry->val = val;
0102 ),
0103
0104 TP_printk("widget=%s val=%d", __get_str(name),
0105 (int)__entry->val)
0106 );
0107
0108 DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_power,
0109
0110 TP_PROTO(struct snd_soc_dapm_widget *w, int val),
0111
0112 TP_ARGS(w, val)
0113
0114 );
0115
0116 DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_event_start,
0117
0118 TP_PROTO(struct snd_soc_dapm_widget *w, int val),
0119
0120 TP_ARGS(w, val)
0121
0122 );
0123
0124 DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_event_done,
0125
0126 TP_PROTO(struct snd_soc_dapm_widget *w, int val),
0127
0128 TP_ARGS(w, val)
0129
0130 );
0131
0132 TRACE_EVENT(snd_soc_dapm_walk_done,
0133
0134 TP_PROTO(struct snd_soc_card *card),
0135
0136 TP_ARGS(card),
0137
0138 TP_STRUCT__entry(
0139 __string( name, card->name )
0140 __field( int, power_checks )
0141 __field( int, path_checks )
0142 __field( int, neighbour_checks )
0143 ),
0144
0145 TP_fast_assign(
0146 __assign_str(name, card->name);
0147 __entry->power_checks = card->dapm_stats.power_checks;
0148 __entry->path_checks = card->dapm_stats.path_checks;
0149 __entry->neighbour_checks = card->dapm_stats.neighbour_checks;
0150 ),
0151
0152 TP_printk("%s: checks %d power, %d path, %d neighbour",
0153 __get_str(name), (int)__entry->power_checks,
0154 (int)__entry->path_checks, (int)__entry->neighbour_checks)
0155 );
0156
0157 TRACE_EVENT(snd_soc_dapm_path,
0158
0159 TP_PROTO(struct snd_soc_dapm_widget *widget,
0160 enum snd_soc_dapm_direction dir,
0161 struct snd_soc_dapm_path *path),
0162
0163 TP_ARGS(widget, dir, path),
0164
0165 TP_STRUCT__entry(
0166 __string( wname, widget->name )
0167 __string( pname, path->name ? path->name : DAPM_DIRECT)
0168 __string( pnname, path->node[dir]->name )
0169 __field( int, path_node )
0170 __field( int, path_connect )
0171 __field( int, path_dir )
0172 ),
0173
0174 TP_fast_assign(
0175 __assign_str(wname, widget->name);
0176 __assign_str(pname, path->name ? path->name : DAPM_DIRECT);
0177 __assign_str(pnname, path->node[dir]->name);
0178 __entry->path_connect = path->connect;
0179 __entry->path_node = (long)path->node[dir];
0180 __entry->path_dir = dir;
0181 ),
0182
0183 TP_printk("%c%s %s %s %s %s",
0184 (int) __entry->path_node &&
0185 (int) __entry->path_connect ? '*' : ' ',
0186 __get_str(wname), DAPM_ARROW(__entry->path_dir),
0187 __get_str(pname), DAPM_ARROW(__entry->path_dir),
0188 __get_str(pnname))
0189 );
0190
0191 TRACE_EVENT(snd_soc_dapm_connected,
0192
0193 TP_PROTO(int paths, int stream),
0194
0195 TP_ARGS(paths, stream),
0196
0197 TP_STRUCT__entry(
0198 __field( int, paths )
0199 __field( int, stream )
0200 ),
0201
0202 TP_fast_assign(
0203 __entry->paths = paths;
0204 __entry->stream = stream;
0205 ),
0206
0207 TP_printk("%s: found %d paths",
0208 __entry->stream ? "capture" : "playback", __entry->paths)
0209 );
0210
0211 TRACE_EVENT(snd_soc_jack_irq,
0212
0213 TP_PROTO(const char *name),
0214
0215 TP_ARGS(name),
0216
0217 TP_STRUCT__entry(
0218 __string( name, name )
0219 ),
0220
0221 TP_fast_assign(
0222 __assign_str(name, name);
0223 ),
0224
0225 TP_printk("%s", __get_str(name))
0226 );
0227
0228 TRACE_EVENT(snd_soc_jack_report,
0229
0230 TP_PROTO(struct snd_soc_jack *jack, int mask, int val),
0231
0232 TP_ARGS(jack, mask, val),
0233
0234 TP_STRUCT__entry(
0235 __string( name, jack->jack->id )
0236 __field( int, mask )
0237 __field( int, val )
0238 ),
0239
0240 TP_fast_assign(
0241 __assign_str(name, jack->jack->id);
0242 __entry->mask = mask;
0243 __entry->val = val;
0244 ),
0245
0246 TP_printk("jack=%s %x/%x", __get_str(name), (int)__entry->val,
0247 (int)__entry->mask)
0248 );
0249
0250 TRACE_EVENT(snd_soc_jack_notify,
0251
0252 TP_PROTO(struct snd_soc_jack *jack, int val),
0253
0254 TP_ARGS(jack, val),
0255
0256 TP_STRUCT__entry(
0257 __string( name, jack->jack->id )
0258 __field( int, val )
0259 ),
0260
0261 TP_fast_assign(
0262 __assign_str(name, jack->jack->id);
0263 __entry->val = val;
0264 ),
0265
0266 TP_printk("jack=%s %x", __get_str(name), (int)__entry->val)
0267 );
0268
0269 #endif
0270
0271
0272 #include <trace/define_trace.h>