asoc.h 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294
  1. #undef TRACE_SYSTEM
  2. #define TRACE_SYSTEM asoc
  3. #if !defined(_TRACE_ASOC_H) || defined(TRACE_HEADER_MULTI_READ)
  4. #define _TRACE_ASOC_H
  5. #include <linux/ktime.h>
  6. #include <linux/tracepoint.h>
  7. #define DAPM_DIRECT "(direct)"
  8. struct snd_soc_jack;
  9. struct snd_soc_codec;
  10. struct snd_soc_card;
  11. struct snd_soc_dapm_widget;
  12. struct snd_soc_dapm_path;
  13. DECLARE_EVENT_CLASS(snd_soc_card,
  14. TP_PROTO(struct snd_soc_card *card, int val),
  15. TP_ARGS(card, val),
  16. TP_STRUCT__entry(
  17. __string( name, card->name )
  18. __field( int, val )
  19. ),
  20. TP_fast_assign(
  21. __assign_str(name, card->name);
  22. __entry->val = val;
  23. ),
  24. TP_printk("card=%s val=%d", __get_str(name), (int)__entry->val)
  25. );
  26. DEFINE_EVENT(snd_soc_card, snd_soc_bias_level_start,
  27. TP_PROTO(struct snd_soc_card *card, int val),
  28. TP_ARGS(card, val)
  29. );
  30. DEFINE_EVENT(snd_soc_card, snd_soc_bias_level_done,
  31. TP_PROTO(struct snd_soc_card *card, int val),
  32. TP_ARGS(card, val)
  33. );
  34. DECLARE_EVENT_CLASS(snd_soc_dapm_basic,
  35. TP_PROTO(struct snd_soc_card *card),
  36. TP_ARGS(card),
  37. TP_STRUCT__entry(
  38. __string( name, card->name )
  39. ),
  40. TP_fast_assign(
  41. __assign_str(name, card->name);
  42. ),
  43. TP_printk("card=%s", __get_str(name))
  44. );
  45. DEFINE_EVENT(snd_soc_dapm_basic, snd_soc_dapm_start,
  46. TP_PROTO(struct snd_soc_card *card),
  47. TP_ARGS(card)
  48. );
  49. DEFINE_EVENT(snd_soc_dapm_basic, snd_soc_dapm_done,
  50. TP_PROTO(struct snd_soc_card *card),
  51. TP_ARGS(card)
  52. );
  53. DECLARE_EVENT_CLASS(snd_soc_dapm_widget,
  54. TP_PROTO(struct snd_soc_dapm_widget *w, int val),
  55. TP_ARGS(w, val),
  56. TP_STRUCT__entry(
  57. __string( name, w->name )
  58. __field( int, val )
  59. ),
  60. TP_fast_assign(
  61. __assign_str(name, w->name);
  62. __entry->val = val;
  63. ),
  64. TP_printk("widget=%s val=%d", __get_str(name),
  65. (int)__entry->val)
  66. );
  67. DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_power,
  68. TP_PROTO(struct snd_soc_dapm_widget *w, int val),
  69. TP_ARGS(w, val)
  70. );
  71. DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_event_start,
  72. TP_PROTO(struct snd_soc_dapm_widget *w, int val),
  73. TP_ARGS(w, val)
  74. );
  75. DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_event_done,
  76. TP_PROTO(struct snd_soc_dapm_widget *w, int val),
  77. TP_ARGS(w, val)
  78. );
  79. TRACE_EVENT(snd_soc_dapm_walk_done,
  80. TP_PROTO(struct snd_soc_card *card),
  81. TP_ARGS(card),
  82. TP_STRUCT__entry(
  83. __string( name, card->name )
  84. __field( int, power_checks )
  85. __field( int, path_checks )
  86. __field( int, neighbour_checks )
  87. ),
  88. TP_fast_assign(
  89. __assign_str(name, card->name);
  90. __entry->power_checks = card->dapm_stats.power_checks;
  91. __entry->path_checks = card->dapm_stats.path_checks;
  92. __entry->neighbour_checks = card->dapm_stats.neighbour_checks;
  93. ),
  94. TP_printk("%s: checks %d power, %d path, %d neighbour",
  95. __get_str(name), (int)__entry->power_checks,
  96. (int)__entry->path_checks, (int)__entry->neighbour_checks)
  97. );
  98. TRACE_EVENT(snd_soc_dapm_output_path,
  99. TP_PROTO(struct snd_soc_dapm_widget *widget,
  100. struct snd_soc_dapm_path *path),
  101. TP_ARGS(widget, path),
  102. TP_STRUCT__entry(
  103. __string( wname, widget->name )
  104. __string( pname, path->name ? path->name : DAPM_DIRECT)
  105. __string( psname, path->sink->name )
  106. __field( int, path_sink )
  107. __field( int, path_connect )
  108. ),
  109. TP_fast_assign(
  110. __assign_str(wname, widget->name);
  111. __assign_str(pname, path->name ? path->name : DAPM_DIRECT);
  112. __assign_str(psname, path->sink->name);
  113. __entry->path_connect = path->connect;
  114. __entry->path_sink = (long)path->sink;
  115. ),
  116. TP_printk("%c%s -> %s -> %s",
  117. (int) __entry->path_sink &&
  118. (int) __entry->path_connect ? '*' : ' ',
  119. __get_str(wname), __get_str(pname), __get_str(psname))
  120. );
  121. TRACE_EVENT(snd_soc_dapm_input_path,
  122. TP_PROTO(struct snd_soc_dapm_widget *widget,
  123. struct snd_soc_dapm_path *path),
  124. TP_ARGS(widget, path),
  125. TP_STRUCT__entry(
  126. __string( wname, widget->name )
  127. __string( pname, path->name ? path->name : DAPM_DIRECT)
  128. __string( psname, path->source->name )
  129. __field( int, path_source )
  130. __field( int, path_connect )
  131. ),
  132. TP_fast_assign(
  133. __assign_str(wname, widget->name);
  134. __assign_str(pname, path->name ? path->name : DAPM_DIRECT);
  135. __assign_str(psname, path->source->name);
  136. __entry->path_connect = path->connect;
  137. __entry->path_source = (long)path->source;
  138. ),
  139. TP_printk("%c%s <- %s <- %s",
  140. (int) __entry->path_source &&
  141. (int) __entry->path_connect ? '*' : ' ',
  142. __get_str(wname), __get_str(pname), __get_str(psname))
  143. );
  144. TRACE_EVENT(snd_soc_dapm_connected,
  145. TP_PROTO(int paths, int stream),
  146. TP_ARGS(paths, stream),
  147. TP_STRUCT__entry(
  148. __field( int, paths )
  149. __field( int, stream )
  150. ),
  151. TP_fast_assign(
  152. __entry->paths = paths;
  153. __entry->stream = stream;
  154. ),
  155. TP_printk("%s: found %d paths",
  156. __entry->stream ? "capture" : "playback", __entry->paths)
  157. );
  158. TRACE_EVENT(snd_soc_jack_irq,
  159. TP_PROTO(const char *name),
  160. TP_ARGS(name),
  161. TP_STRUCT__entry(
  162. __string( name, name )
  163. ),
  164. TP_fast_assign(
  165. __assign_str(name, name);
  166. ),
  167. TP_printk("%s", __get_str(name))
  168. );
  169. TRACE_EVENT(snd_soc_jack_report,
  170. TP_PROTO(struct snd_soc_jack *jack, int mask, int val),
  171. TP_ARGS(jack, mask, val),
  172. TP_STRUCT__entry(
  173. __string( name, jack->jack->name )
  174. __field( int, mask )
  175. __field( int, val )
  176. ),
  177. TP_fast_assign(
  178. __assign_str(name, jack->jack->name);
  179. __entry->mask = mask;
  180. __entry->val = val;
  181. ),
  182. TP_printk("jack=%s %x/%x", __get_str(name), (int)__entry->val,
  183. (int)__entry->mask)
  184. );
  185. TRACE_EVENT(snd_soc_jack_notify,
  186. TP_PROTO(struct snd_soc_jack *jack, int val),
  187. TP_ARGS(jack, val),
  188. TP_STRUCT__entry(
  189. __string( name, jack->jack->name )
  190. __field( int, val )
  191. ),
  192. TP_fast_assign(
  193. __assign_str(name, jack->jack->name);
  194. __entry->val = val;
  195. ),
  196. TP_printk("jack=%s %x", __get_str(name), (int)__entry->val)
  197. );
  198. #endif /* _TRACE_ASOC_H */
  199. /* This part must be outside protection */
  200. #include <trace/define_trace.h>