asoc.h 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  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. struct snd_soc_jack;
  8. struct snd_soc_codec;
  9. struct snd_soc_platform;
  10. struct snd_soc_card;
  11. struct snd_soc_dapm_widget;
  12. /*
  13. * Log register events
  14. */
  15. DECLARE_EVENT_CLASS(snd_soc_reg,
  16. TP_PROTO(struct snd_soc_codec *codec, unsigned int reg,
  17. unsigned int val),
  18. TP_ARGS(codec, reg, val),
  19. TP_STRUCT__entry(
  20. __string( name, codec->name )
  21. __field( int, id )
  22. __field( unsigned int, reg )
  23. __field( unsigned int, val )
  24. ),
  25. TP_fast_assign(
  26. __assign_str(name, codec->name);
  27. __entry->id = codec->id;
  28. __entry->reg = reg;
  29. __entry->val = val;
  30. ),
  31. TP_printk("codec=%s.%d reg=%x val=%x", __get_str(name),
  32. (int)__entry->id, (unsigned int)__entry->reg,
  33. (unsigned int)__entry->val)
  34. );
  35. DEFINE_EVENT(snd_soc_reg, snd_soc_reg_write,
  36. TP_PROTO(struct snd_soc_codec *codec, unsigned int reg,
  37. unsigned int val),
  38. TP_ARGS(codec, reg, val)
  39. );
  40. DEFINE_EVENT(snd_soc_reg, snd_soc_reg_read,
  41. TP_PROTO(struct snd_soc_codec *codec, unsigned int reg,
  42. unsigned int val),
  43. TP_ARGS(codec, reg, val)
  44. );
  45. DECLARE_EVENT_CLASS(snd_soc_preg,
  46. TP_PROTO(struct snd_soc_platform *platform, unsigned int reg,
  47. unsigned int val),
  48. TP_ARGS(platform, reg, val),
  49. TP_STRUCT__entry(
  50. __string( name, platform->name )
  51. __field( int, id )
  52. __field( unsigned int, reg )
  53. __field( unsigned int, val )
  54. ),
  55. TP_fast_assign(
  56. __assign_str(name, platform->name);
  57. __entry->id = platform->id;
  58. __entry->reg = reg;
  59. __entry->val = val;
  60. ),
  61. TP_printk("platform=%s.%d reg=%x val=%x", __get_str(name),
  62. (int)__entry->id, (unsigned int)__entry->reg,
  63. (unsigned int)__entry->val)
  64. );
  65. DEFINE_EVENT(snd_soc_preg, snd_soc_preg_write,
  66. TP_PROTO(struct snd_soc_platform *platform, unsigned int reg,
  67. unsigned int val),
  68. TP_ARGS(platform, reg, val)
  69. );
  70. DEFINE_EVENT(snd_soc_preg, snd_soc_preg_read,
  71. TP_PROTO(struct snd_soc_platform *platform, unsigned int reg,
  72. unsigned int val),
  73. TP_ARGS(platform, reg, val)
  74. );
  75. DECLARE_EVENT_CLASS(snd_soc_card,
  76. TP_PROTO(struct snd_soc_card *card, int val),
  77. TP_ARGS(card, val),
  78. TP_STRUCT__entry(
  79. __string( name, card->name )
  80. __field( int, val )
  81. ),
  82. TP_fast_assign(
  83. __assign_str(name, card->name);
  84. __entry->val = val;
  85. ),
  86. TP_printk("card=%s val=%d", __get_str(name), (int)__entry->val)
  87. );
  88. DEFINE_EVENT(snd_soc_card, snd_soc_bias_level_start,
  89. TP_PROTO(struct snd_soc_card *card, int val),
  90. TP_ARGS(card, val)
  91. );
  92. DEFINE_EVENT(snd_soc_card, snd_soc_bias_level_done,
  93. TP_PROTO(struct snd_soc_card *card, int val),
  94. TP_ARGS(card, val)
  95. );
  96. DECLARE_EVENT_CLASS(snd_soc_dapm_basic,
  97. TP_PROTO(struct snd_soc_card *card),
  98. TP_ARGS(card),
  99. TP_STRUCT__entry(
  100. __string( name, card->name )
  101. ),
  102. TP_fast_assign(
  103. __assign_str(name, card->name);
  104. ),
  105. TP_printk("card=%s", __get_str(name))
  106. );
  107. DEFINE_EVENT(snd_soc_dapm_basic, snd_soc_dapm_start,
  108. TP_PROTO(struct snd_soc_card *card),
  109. TP_ARGS(card)
  110. );
  111. DEFINE_EVENT(snd_soc_dapm_basic, snd_soc_dapm_done,
  112. TP_PROTO(struct snd_soc_card *card),
  113. TP_ARGS(card)
  114. );
  115. DECLARE_EVENT_CLASS(snd_soc_dapm_widget,
  116. TP_PROTO(struct snd_soc_dapm_widget *w, int val),
  117. TP_ARGS(w, val),
  118. TP_STRUCT__entry(
  119. __string( name, w->name )
  120. __field( int, val )
  121. ),
  122. TP_fast_assign(
  123. __assign_str(name, w->name);
  124. __entry->val = val;
  125. ),
  126. TP_printk("widget=%s val=%d", __get_str(name),
  127. (int)__entry->val)
  128. );
  129. DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_power,
  130. TP_PROTO(struct snd_soc_dapm_widget *w, int val),
  131. TP_ARGS(w, val)
  132. );
  133. DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_event_start,
  134. TP_PROTO(struct snd_soc_dapm_widget *w, int val),
  135. TP_ARGS(w, val)
  136. );
  137. DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_event_done,
  138. TP_PROTO(struct snd_soc_dapm_widget *w, int val),
  139. TP_ARGS(w, val)
  140. );
  141. TRACE_EVENT(snd_soc_dapm_walk_done,
  142. TP_PROTO(struct snd_soc_card *card),
  143. TP_ARGS(card),
  144. TP_STRUCT__entry(
  145. __string( name, card->name )
  146. __field( int, power_checks )
  147. __field( int, path_checks )
  148. __field( int, neighbour_checks )
  149. ),
  150. TP_fast_assign(
  151. __assign_str(name, card->name);
  152. __entry->power_checks = card->dapm_stats.power_checks;
  153. __entry->path_checks = card->dapm_stats.path_checks;
  154. __entry->neighbour_checks = card->dapm_stats.neighbour_checks;
  155. ),
  156. TP_printk("%s: checks %d power, %d path, %d neighbour",
  157. __get_str(name), (int)__entry->power_checks,
  158. (int)__entry->path_checks, (int)__entry->neighbour_checks)
  159. );
  160. TRACE_EVENT(snd_soc_jack_irq,
  161. TP_PROTO(const char *name),
  162. TP_ARGS(name),
  163. TP_STRUCT__entry(
  164. __string( name, name )
  165. ),
  166. TP_fast_assign(
  167. __assign_str(name, name);
  168. ),
  169. TP_printk("%s", __get_str(name))
  170. );
  171. TRACE_EVENT(snd_soc_jack_report,
  172. TP_PROTO(struct snd_soc_jack *jack, int mask, int val),
  173. TP_ARGS(jack, mask, val),
  174. TP_STRUCT__entry(
  175. __string( name, jack->jack->name )
  176. __field( int, mask )
  177. __field( int, val )
  178. ),
  179. TP_fast_assign(
  180. __assign_str(name, jack->jack->name);
  181. __entry->mask = mask;
  182. __entry->val = val;
  183. ),
  184. TP_printk("jack=%s %x/%x", __get_str(name), (int)__entry->val,
  185. (int)__entry->mask)
  186. );
  187. TRACE_EVENT(snd_soc_jack_notify,
  188. TP_PROTO(struct snd_soc_jack *jack, int val),
  189. TP_ARGS(jack, val),
  190. TP_STRUCT__entry(
  191. __string( name, jack->jack->name )
  192. __field( int, val )
  193. ),
  194. TP_fast_assign(
  195. __assign_str(name, jack->jack->name);
  196. __entry->val = val;
  197. ),
  198. TP_printk("jack=%s %x", __get_str(name), (int)__entry->val)
  199. );
  200. TRACE_EVENT(snd_soc_cache_sync,
  201. TP_PROTO(struct snd_soc_codec *codec, const char *type,
  202. const char *status),
  203. TP_ARGS(codec, type, status),
  204. TP_STRUCT__entry(
  205. __string( name, codec->name )
  206. __string( status, status )
  207. __string( type, type )
  208. __field( int, id )
  209. ),
  210. TP_fast_assign(
  211. __assign_str(name, codec->name);
  212. __assign_str(status, status);
  213. __assign_str(type, type);
  214. __entry->id = codec->id;
  215. ),
  216. TP_printk("codec=%s.%d type=%s status=%s", __get_str(name),
  217. (int)__entry->id, __get_str(type), __get_str(status))
  218. );
  219. #endif /* _TRACE_ASOC_H */
  220. /* This part must be outside protection */
  221. #include <trace/define_trace.h>