linux/include/trace/events/asoc.h
<<
>>
Prefs
   1#undef TRACE_SYSTEM
   2#define TRACE_SYSTEM asoc
   3
   4#if !defined(_TRACE_ASOC_H) || defined(TRACE_HEADER_MULTI_READ)
   5#define _TRACE_ASOC_H
   6
   7#include <linux/ktime.h>
   8#include <linux/tracepoint.h>
   9
  10#define DAPM_DIRECT "(direct)"
  11
  12struct snd_soc_jack;
  13struct snd_soc_codec;
  14struct snd_soc_platform;
  15struct snd_soc_card;
  16struct snd_soc_dapm_widget;
  17struct snd_soc_dapm_path;
  18
  19/*
  20 * Log register events
  21 */
  22DECLARE_EVENT_CLASS(snd_soc_reg,
  23
  24        TP_PROTO(struct snd_soc_codec *codec, unsigned int reg,
  25                 unsigned int val),
  26
  27        TP_ARGS(codec, reg, val),
  28
  29        TP_STRUCT__entry(
  30                __string(       name,           codec->name     )
  31                __field(        int,            id              )
  32                __field(        unsigned int,   reg             )
  33                __field(        unsigned int,   val             )
  34        ),
  35
  36        TP_fast_assign(
  37                __assign_str(name, codec->name);
  38                __entry->id = codec->id;
  39                __entry->reg = reg;
  40                __entry->val = val;
  41        ),
  42
  43        TP_printk("codec=%s.%d reg=%x val=%x", __get_str(name),
  44                  (int)__entry->id, (unsigned int)__entry->reg,
  45                  (unsigned int)__entry->val)
  46);
  47
  48DEFINE_EVENT(snd_soc_reg, snd_soc_reg_write,
  49
  50        TP_PROTO(struct snd_soc_codec *codec, unsigned int reg,
  51                 unsigned int val),
  52
  53        TP_ARGS(codec, reg, val)
  54
  55);
  56
  57DEFINE_EVENT(snd_soc_reg, snd_soc_reg_read,
  58
  59        TP_PROTO(struct snd_soc_codec *codec, unsigned int reg,
  60                 unsigned int val),
  61
  62        TP_ARGS(codec, reg, val)
  63
  64);
  65
  66DECLARE_EVENT_CLASS(snd_soc_preg,
  67
  68        TP_PROTO(struct snd_soc_platform *platform, unsigned int reg,
  69                 unsigned int val),
  70
  71        TP_ARGS(platform, reg, val),
  72
  73        TP_STRUCT__entry(
  74                __string(       name,           platform->name  )
  75                __field(        int,            id              )
  76                __field(        unsigned int,   reg             )
  77                __field(        unsigned int,   val             )
  78        ),
  79
  80        TP_fast_assign(
  81                __assign_str(name, platform->name);
  82                __entry->id = platform->id;
  83                __entry->reg = reg;
  84                __entry->val = val;
  85        ),
  86
  87        TP_printk("platform=%s.%d reg=%x val=%x", __get_str(name),
  88                  (int)__entry->id, (unsigned int)__entry->reg,
  89                  (unsigned int)__entry->val)
  90);
  91
  92DEFINE_EVENT(snd_soc_preg, snd_soc_preg_write,
  93
  94        TP_PROTO(struct snd_soc_platform *platform, unsigned int reg,
  95                 unsigned int val),
  96
  97        TP_ARGS(platform, reg, val)
  98
  99);
 100
 101DEFINE_EVENT(snd_soc_preg, snd_soc_preg_read,
 102
 103        TP_PROTO(struct snd_soc_platform *platform, unsigned int reg,
 104                 unsigned int val),
 105
 106        TP_ARGS(platform, reg, val)
 107
 108);
 109
 110DECLARE_EVENT_CLASS(snd_soc_card,
 111
 112        TP_PROTO(struct snd_soc_card *card, int val),
 113
 114        TP_ARGS(card, val),
 115
 116        TP_STRUCT__entry(
 117                __string(       name,           card->name      )
 118                __field(        int,            val             )
 119        ),
 120
 121        TP_fast_assign(
 122                __assign_str(name, card->name);
 123                __entry->val = val;
 124        ),
 125
 126        TP_printk("card=%s val=%d", __get_str(name), (int)__entry->val)
 127);
 128
 129DEFINE_EVENT(snd_soc_card, snd_soc_bias_level_start,
 130
 131        TP_PROTO(struct snd_soc_card *card, int val),
 132
 133        TP_ARGS(card, val)
 134
 135);
 136
 137DEFINE_EVENT(snd_soc_card, snd_soc_bias_level_done,
 138
 139        TP_PROTO(struct snd_soc_card *card, int val),
 140
 141        TP_ARGS(card, val)
 142
 143);
 144
 145DECLARE_EVENT_CLASS(snd_soc_dapm_basic,
 146
 147        TP_PROTO(struct snd_soc_card *card),
 148
 149        TP_ARGS(card),
 150
 151        TP_STRUCT__entry(
 152                __string(       name,   card->name      )
 153        ),
 154
 155        TP_fast_assign(
 156                __assign_str(name, card->name);
 157        ),
 158
 159        TP_printk("card=%s", __get_str(name))
 160);
 161
 162DEFINE_EVENT(snd_soc_dapm_basic, snd_soc_dapm_start,
 163
 164        TP_PROTO(struct snd_soc_card *card),
 165
 166        TP_ARGS(card)
 167
 168);
 169
 170DEFINE_EVENT(snd_soc_dapm_basic, snd_soc_dapm_done,
 171
 172        TP_PROTO(struct snd_soc_card *card),
 173
 174        TP_ARGS(card)
 175
 176);
 177
 178DECLARE_EVENT_CLASS(snd_soc_dapm_widget,
 179
 180        TP_PROTO(struct snd_soc_dapm_widget *w, int val),
 181
 182        TP_ARGS(w, val),
 183
 184        TP_STRUCT__entry(
 185                __string(       name,   w->name         )
 186                __field(        int,    val             )
 187        ),
 188
 189        TP_fast_assign(
 190                __assign_str(name, w->name);
 191                __entry->val = val;
 192        ),
 193
 194        TP_printk("widget=%s val=%d", __get_str(name),
 195                  (int)__entry->val)
 196);
 197
 198DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_power,
 199
 200        TP_PROTO(struct snd_soc_dapm_widget *w, int val),
 201
 202        TP_ARGS(w, val)
 203
 204);
 205
 206DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_event_start,
 207
 208        TP_PROTO(struct snd_soc_dapm_widget *w, int val),
 209
 210        TP_ARGS(w, val)
 211
 212);
 213
 214DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_event_done,
 215
 216        TP_PROTO(struct snd_soc_dapm_widget *w, int val),
 217
 218        TP_ARGS(w, val)
 219
 220);
 221
 222TRACE_EVENT(snd_soc_dapm_walk_done,
 223
 224        TP_PROTO(struct snd_soc_card *card),
 225
 226        TP_ARGS(card),
 227
 228        TP_STRUCT__entry(
 229                __string(       name,   card->name              )
 230                __field(        int,    power_checks            )
 231                __field(        int,    path_checks             )
 232                __field(        int,    neighbour_checks        )
 233        ),
 234
 235        TP_fast_assign(
 236                __assign_str(name, card->name);
 237                __entry->power_checks = card->dapm_stats.power_checks;
 238                __entry->path_checks = card->dapm_stats.path_checks;
 239                __entry->neighbour_checks = card->dapm_stats.neighbour_checks;
 240        ),
 241
 242        TP_printk("%s: checks %d power, %d path, %d neighbour",
 243                  __get_str(name), (int)__entry->power_checks,
 244                  (int)__entry->path_checks, (int)__entry->neighbour_checks)
 245);
 246
 247TRACE_EVENT(snd_soc_dapm_output_path,
 248
 249        TP_PROTO(struct snd_soc_dapm_widget *widget,
 250                struct snd_soc_dapm_path *path),
 251
 252        TP_ARGS(widget, path),
 253
 254        TP_STRUCT__entry(
 255                __string(       wname,  widget->name            )
 256                __string(       pname,  path->name ? path->name : DAPM_DIRECT)
 257                __string(       psname, path->sink->name        )
 258                __field(        int,    path_sink               )
 259                __field(        int,    path_connect            )
 260        ),
 261
 262        TP_fast_assign(
 263                __assign_str(wname, widget->name);
 264                __assign_str(pname, path->name ? path->name : DAPM_DIRECT);
 265                __assign_str(psname, path->sink->name);
 266                __entry->path_connect = path->connect;
 267                __entry->path_sink = (long)path->sink;
 268        ),
 269
 270        TP_printk("%c%s -> %s -> %s\n",
 271                (int) __entry->path_sink &&
 272                (int) __entry->path_connect ? '*' : ' ',
 273                __get_str(wname), __get_str(pname), __get_str(psname))
 274);
 275
 276TRACE_EVENT(snd_soc_dapm_input_path,
 277
 278        TP_PROTO(struct snd_soc_dapm_widget *widget,
 279                struct snd_soc_dapm_path *path),
 280
 281        TP_ARGS(widget, path),
 282
 283        TP_STRUCT__entry(
 284                __string(       wname,  widget->name            )
 285                __string(       pname,  path->name ? path->name : DAPM_DIRECT)
 286                __string(       psname, path->source->name      )
 287                __field(        int,    path_source             )
 288                __field(        int,    path_connect            )
 289        ),
 290
 291        TP_fast_assign(
 292                __assign_str(wname, widget->name);
 293                __assign_str(pname, path->name ? path->name : DAPM_DIRECT);
 294                __assign_str(psname, path->source->name);
 295                __entry->path_connect = path->connect;
 296                __entry->path_source = (long)path->source;
 297        ),
 298
 299        TP_printk("%c%s <- %s <- %s\n",
 300                (int) __entry->path_source &&
 301                (int) __entry->path_connect ? '*' : ' ',
 302                __get_str(wname), __get_str(pname), __get_str(psname))
 303);
 304
 305TRACE_EVENT(snd_soc_dapm_connected,
 306
 307        TP_PROTO(int paths, int stream),
 308
 309        TP_ARGS(paths, stream),
 310
 311        TP_STRUCT__entry(
 312                __field(        int,    paths           )
 313                __field(        int,    stream          )
 314        ),
 315
 316        TP_fast_assign(
 317                __entry->paths = paths;
 318                __entry->stream = stream;
 319        ),
 320
 321        TP_printk("%s: found %d paths\n",
 322                __entry->stream ? "capture" : "playback", __entry->paths)
 323);
 324
 325TRACE_EVENT(snd_soc_jack_irq,
 326
 327        TP_PROTO(const char *name),
 328
 329        TP_ARGS(name),
 330
 331        TP_STRUCT__entry(
 332                __string(       name,   name            )
 333        ),
 334
 335        TP_fast_assign(
 336                __assign_str(name, name);
 337        ),
 338
 339        TP_printk("%s", __get_str(name))
 340);
 341
 342TRACE_EVENT(snd_soc_jack_report,
 343
 344        TP_PROTO(struct snd_soc_jack *jack, int mask, int val),
 345
 346        TP_ARGS(jack, mask, val),
 347
 348        TP_STRUCT__entry(
 349                __string(       name,           jack->jack->name        )
 350                __field(        int,            mask                    )
 351                __field(        int,            val                     )
 352        ),
 353
 354        TP_fast_assign(
 355                __assign_str(name, jack->jack->name);
 356                __entry->mask = mask;
 357                __entry->val = val;
 358        ),
 359
 360        TP_printk("jack=%s %x/%x", __get_str(name), (int)__entry->val,
 361                  (int)__entry->mask)
 362);
 363
 364TRACE_EVENT(snd_soc_jack_notify,
 365
 366        TP_PROTO(struct snd_soc_jack *jack, int val),
 367
 368        TP_ARGS(jack, val),
 369
 370        TP_STRUCT__entry(
 371                __string(       name,           jack->jack->name        )
 372                __field(        int,            val                     )
 373        ),
 374
 375        TP_fast_assign(
 376                __assign_str(name, jack->jack->name);
 377                __entry->val = val;
 378        ),
 379
 380        TP_printk("jack=%s %x", __get_str(name), (int)__entry->val)
 381);
 382
 383TRACE_EVENT(snd_soc_cache_sync,
 384
 385        TP_PROTO(struct snd_soc_codec *codec, const char *type,
 386                 const char *status),
 387
 388        TP_ARGS(codec, type, status),
 389
 390        TP_STRUCT__entry(
 391                __string(       name,           codec->name     )
 392                __string(       status,         status          )
 393                __string(       type,           type            )
 394                __field(        int,            id              )
 395        ),
 396
 397        TP_fast_assign(
 398                __assign_str(name, codec->name);
 399                __assign_str(status, status);
 400                __assign_str(type, type);
 401                __entry->id = codec->id;
 402        ),
 403
 404        TP_printk("codec=%s.%d type=%s status=%s", __get_str(name),
 405                  (int)__entry->id, __get_str(type), __get_str(status))
 406);
 407
 408#endif /* _TRACE_ASOC_H */
 409
 410/* This part must be outside protection */
 411#include <trace/define_trace.h>
 412