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