at master 5.6 kB view raw
1/* SPDX-License-Identifier: GPL-2.0 */ 2#undef TRACE_SYSTEM 3#define TRACE_SYSTEM asoc 4 5#if !defined(_TRACE_ASOC_H) || defined(TRACE_HEADER_MULTI_READ) 6#define _TRACE_ASOC_H 7 8#include <linux/ktime.h> 9#include <linux/tracepoint.h> 10#include <sound/jack.h> 11#include <sound/pcm.h> 12 13#define DAPM_DIRECT "(direct)" 14#define DAPM_ARROW(dir) (((dir) == SND_SOC_DAPM_DIR_OUT) ? "->" : "<-") 15 16TRACE_DEFINE_ENUM(SND_SOC_DAPM_DIR_OUT); 17 18struct snd_soc_jack; 19struct snd_soc_card; 20struct snd_soc_dapm_widget; 21struct snd_soc_dapm_path; 22 23DECLARE_EVENT_CLASS(snd_soc_dapm, 24 25 TP_PROTO(struct snd_soc_dapm_context *dapm, int val), 26 27 TP_ARGS(dapm, val), 28 29 TP_STRUCT__entry( 30 __string( card_name, snd_soc_dapm_to_card(dapm)->name) 31 __string( comp_name, snd_soc_dapm_to_component(dapm) ? snd_soc_dapm_to_component(dapm)->name : "(none)") 32 __field( int, val) 33 ), 34 35 TP_fast_assign( 36 __assign_str(card_name); 37 __assign_str(comp_name); 38 __entry->val = val; 39 ), 40 41 TP_printk("card=%s component=%s val=%d", 42 __get_str(card_name), __get_str(comp_name), (int)__entry->val) 43); 44 45DEFINE_EVENT(snd_soc_dapm, snd_soc_bias_level_start, 46 47 TP_PROTO(struct snd_soc_dapm_context *dapm, int val), 48 49 TP_ARGS(dapm, val) 50 51); 52 53DEFINE_EVENT(snd_soc_dapm, snd_soc_bias_level_done, 54 55 TP_PROTO(struct snd_soc_dapm_context *dapm, int val), 56 57 TP_ARGS(dapm, val) 58 59); 60 61DECLARE_EVENT_CLASS(snd_soc_dapm_basic, 62 63 TP_PROTO(struct snd_soc_card *card, int event), 64 65 TP_ARGS(card, event), 66 67 TP_STRUCT__entry( 68 __string( name, card->name ) 69 __field( int, event ) 70 ), 71 72 TP_fast_assign( 73 __assign_str(name); 74 __entry->event = event; 75 ), 76 77 TP_printk("card=%s event=%d", __get_str(name), (int)__entry->event) 78); 79 80DEFINE_EVENT(snd_soc_dapm_basic, snd_soc_dapm_start, 81 82 TP_PROTO(struct snd_soc_card *card, int event), 83 84 TP_ARGS(card, event) 85 86); 87 88DEFINE_EVENT(snd_soc_dapm_basic, snd_soc_dapm_done, 89 90 TP_PROTO(struct snd_soc_card *card, int event), 91 92 TP_ARGS(card, event) 93 94); 95 96DECLARE_EVENT_CLASS(snd_soc_dapm_widget, 97 98 TP_PROTO(struct snd_soc_dapm_widget *w, int val), 99 100 TP_ARGS(w, val), 101 102 TP_STRUCT__entry( 103 __string( name, w->name ) 104 __field( int, val ) 105 ), 106 107 TP_fast_assign( 108 __assign_str(name); 109 __entry->val = val; 110 ), 111 112 TP_printk("widget=%s val=%d", __get_str(name), 113 (int)__entry->val) 114); 115 116DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_power, 117 118 TP_PROTO(struct snd_soc_dapm_widget *w, int val), 119 120 TP_ARGS(w, val) 121 122); 123 124DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_event_start, 125 126 TP_PROTO(struct snd_soc_dapm_widget *w, int val), 127 128 TP_ARGS(w, val) 129 130); 131 132DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_event_done, 133 134 TP_PROTO(struct snd_soc_dapm_widget *w, int val), 135 136 TP_ARGS(w, val) 137 138); 139 140TRACE_EVENT(snd_soc_dapm_walk_done, 141 142 TP_PROTO(struct snd_soc_card *card), 143 144 TP_ARGS(card), 145 146 TP_STRUCT__entry( 147 __string( name, card->name ) 148 __field( int, power_checks ) 149 __field( int, path_checks ) 150 __field( int, neighbour_checks ) 151 ), 152 153 TP_fast_assign( 154 __assign_str(name); 155 __entry->power_checks = card->dapm_stats.power_checks; 156 __entry->path_checks = card->dapm_stats.path_checks; 157 __entry->neighbour_checks = card->dapm_stats.neighbour_checks; 158 ), 159 160 TP_printk("%s: checks %d power, %d path, %d neighbour", 161 __get_str(name), (int)__entry->power_checks, 162 (int)__entry->path_checks, (int)__entry->neighbour_checks) 163); 164 165TRACE_EVENT(snd_soc_dapm_path, 166 167 TP_PROTO(struct snd_soc_dapm_widget *widget, 168 enum snd_soc_dapm_direction dir, 169 struct snd_soc_dapm_path *path), 170 171 TP_ARGS(widget, dir, path), 172 173 TP_STRUCT__entry( 174 __string( wname, widget->name ) 175 __string( pname, path->name ? path->name : DAPM_DIRECT) 176 __string( pnname, path->node[dir]->name ) 177 __field( int, path_node ) 178 __field( int, path_connect ) 179 __field( int, path_dir ) 180 ), 181 182 TP_fast_assign( 183 __assign_str(wname); 184 __assign_str(pname); 185 __assign_str(pnname); 186 __entry->path_connect = path->connect; 187 __entry->path_node = (long)path->node[dir]; 188 __entry->path_dir = dir; 189 ), 190 191 TP_printk("%c%s %s %s %s %s", 192 (int) __entry->path_node && 193 (int) __entry->path_connect ? '*' : ' ', 194 __get_str(wname), DAPM_ARROW(__entry->path_dir), 195 __get_str(pname), DAPM_ARROW(__entry->path_dir), 196 __get_str(pnname)) 197); 198 199TRACE_EVENT(snd_soc_dapm_connected, 200 201 TP_PROTO(int paths, int stream), 202 203 TP_ARGS(paths, stream), 204 205 TP_STRUCT__entry( 206 __field( int, paths ) 207 __field( int, stream ) 208 ), 209 210 TP_fast_assign( 211 __entry->paths = paths; 212 __entry->stream = stream; 213 ), 214 215 TP_printk("%s: found %d paths", 216 snd_pcm_direction_name(__entry->stream), __entry->paths) 217); 218 219TRACE_EVENT(snd_soc_jack_irq, 220 221 TP_PROTO(const char *name), 222 223 TP_ARGS(name), 224 225 TP_STRUCT__entry( 226 __string( name, name ) 227 ), 228 229 TP_fast_assign( 230 __assign_str(name); 231 ), 232 233 TP_printk("%s", __get_str(name)) 234); 235 236TRACE_EVENT(snd_soc_jack_report, 237 238 TP_PROTO(struct snd_soc_jack *jack, int mask, int val), 239 240 TP_ARGS(jack, mask, val), 241 242 TP_STRUCT__entry( 243 __string( name, jack->jack->id ) 244 __field( int, mask ) 245 __field( int, val ) 246 ), 247 248 TP_fast_assign( 249 __assign_str(name); 250 __entry->mask = mask; 251 __entry->val = val; 252 ), 253 254 TP_printk("jack=%s %x/%x", __get_str(name), (int)__entry->val, 255 (int)__entry->mask) 256); 257 258TRACE_EVENT(snd_soc_jack_notify, 259 260 TP_PROTO(struct snd_soc_jack *jack, int val), 261 262 TP_ARGS(jack, val), 263 264 TP_STRUCT__entry( 265 __string( name, jack->jack->id ) 266 __field( int, val ) 267 ), 268 269 TP_fast_assign( 270 __assign_str(name); 271 __entry->val = val; 272 ), 273 274 TP_printk("jack=%s %x", __get_str(name), (int)__entry->val) 275); 276 277#endif /* _TRACE_ASOC_H */ 278 279/* This part must be outside protection */ 280#include <trace/define_trace.h>