Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
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 /* _TRACE_ASOC_H */
0270 
0271 /* This part must be outside protection */
0272 #include <trace/define_trace.h>