scmi.h 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #undef TRACE_SYSTEM
  3. #define TRACE_SYSTEM scmi
  4. #if !defined(_TRACE_SCMI_H) || defined(TRACE_HEADER_MULTI_READ)
  5. #define _TRACE_SCMI_H
  6. #include <linux/tracepoint.h>
  7. TRACE_EVENT(scmi_fc_call,
  8. TP_PROTO(u8 protocol_id, u8 msg_id, u32 res_id, u32 val1, u32 val2),
  9. TP_ARGS(protocol_id, msg_id, res_id, val1, val2),
  10. TP_STRUCT__entry(
  11. __field(u8, protocol_id)
  12. __field(u8, msg_id)
  13. __field(u32, res_id)
  14. __field(u32, val1)
  15. __field(u32, val2)
  16. ),
  17. TP_fast_assign(
  18. __entry->protocol_id = protocol_id;
  19. __entry->msg_id = msg_id;
  20. __entry->res_id = res_id;
  21. __entry->val1 = val1;
  22. __entry->val2 = val2;
  23. ),
  24. TP_printk("pt=%02X msg_id=%02X res_id:%u vals=%u:%u",
  25. __entry->protocol_id, __entry->msg_id,
  26. __entry->res_id, __entry->val1, __entry->val2)
  27. );
  28. TRACE_EVENT(scmi_xfer_begin,
  29. TP_PROTO(int transfer_id, u8 msg_id, u8 protocol_id, u16 seq,
  30. bool poll),
  31. TP_ARGS(transfer_id, msg_id, protocol_id, seq, poll),
  32. TP_STRUCT__entry(
  33. __field(int, transfer_id)
  34. __field(u8, msg_id)
  35. __field(u8, protocol_id)
  36. __field(u16, seq)
  37. __field(bool, poll)
  38. ),
  39. TP_fast_assign(
  40. __entry->transfer_id = transfer_id;
  41. __entry->msg_id = msg_id;
  42. __entry->protocol_id = protocol_id;
  43. __entry->seq = seq;
  44. __entry->poll = poll;
  45. ),
  46. TP_printk("pt=%02X msg_id=%02X seq=%04X transfer_id=%X poll=%u",
  47. __entry->protocol_id, __entry->msg_id, __entry->seq,
  48. __entry->transfer_id, __entry->poll)
  49. );
  50. TRACE_EVENT(scmi_xfer_response_wait,
  51. TP_PROTO(int transfer_id, u8 msg_id, u8 protocol_id, u16 seq,
  52. u32 timeout, bool poll),
  53. TP_ARGS(transfer_id, msg_id, protocol_id, seq, timeout, poll),
  54. TP_STRUCT__entry(
  55. __field(int, transfer_id)
  56. __field(u8, msg_id)
  57. __field(u8, protocol_id)
  58. __field(u16, seq)
  59. __field(u32, timeout)
  60. __field(bool, poll)
  61. ),
  62. TP_fast_assign(
  63. __entry->transfer_id = transfer_id;
  64. __entry->msg_id = msg_id;
  65. __entry->protocol_id = protocol_id;
  66. __entry->seq = seq;
  67. __entry->timeout = timeout;
  68. __entry->poll = poll;
  69. ),
  70. TP_printk("pt=%02X msg_id=%02X seq=%04X transfer_id=%X tmo_ms=%u poll=%u",
  71. __entry->protocol_id, __entry->msg_id, __entry->seq,
  72. __entry->transfer_id, __entry->timeout, __entry->poll)
  73. );
  74. TRACE_EVENT(scmi_xfer_end,
  75. TP_PROTO(int transfer_id, u8 msg_id, u8 protocol_id, u16 seq,
  76. int status),
  77. TP_ARGS(transfer_id, msg_id, protocol_id, seq, status),
  78. TP_STRUCT__entry(
  79. __field(int, transfer_id)
  80. __field(u8, msg_id)
  81. __field(u8, protocol_id)
  82. __field(u16, seq)
  83. __field(int, status)
  84. ),
  85. TP_fast_assign(
  86. __entry->transfer_id = transfer_id;
  87. __entry->msg_id = msg_id;
  88. __entry->protocol_id = protocol_id;
  89. __entry->seq = seq;
  90. __entry->status = status;
  91. ),
  92. TP_printk("pt=%02X msg_id=%02X seq=%04X transfer_id=%X s=%d",
  93. __entry->protocol_id, __entry->msg_id, __entry->seq,
  94. __entry->transfer_id, __entry->status)
  95. );
  96. TRACE_EVENT(scmi_rx_done,
  97. TP_PROTO(int transfer_id, u8 msg_id, u8 protocol_id, u16 seq,
  98. u8 msg_type),
  99. TP_ARGS(transfer_id, msg_id, protocol_id, seq, msg_type),
  100. TP_STRUCT__entry(
  101. __field(int, transfer_id)
  102. __field(u8, msg_id)
  103. __field(u8, protocol_id)
  104. __field(u16, seq)
  105. __field(u8, msg_type)
  106. ),
  107. TP_fast_assign(
  108. __entry->transfer_id = transfer_id;
  109. __entry->msg_id = msg_id;
  110. __entry->protocol_id = protocol_id;
  111. __entry->seq = seq;
  112. __entry->msg_type = msg_type;
  113. ),
  114. TP_printk("pt=%02X msg_id=%02X seq=%04X transfer_id=%X msg_type=%u",
  115. __entry->protocol_id, __entry->msg_id, __entry->seq,
  116. __entry->transfer_id, __entry->msg_type)
  117. );
  118. TRACE_EVENT(scmi_msg_dump,
  119. TP_PROTO(u8 protocol_id, u8 msg_id, unsigned char *tag, u16 seq,
  120. int status, void *buf, size_t len),
  121. TP_ARGS(protocol_id, msg_id, tag, seq, status, buf, len),
  122. TP_STRUCT__entry(
  123. __field(u8, protocol_id)
  124. __field(u8, msg_id)
  125. __array(char, tag, 5)
  126. __field(u16, seq)
  127. __field(int, status)
  128. __field(size_t, len)
  129. __dynamic_array(unsigned char, cmd, len)
  130. ),
  131. TP_fast_assign(
  132. __entry->protocol_id = protocol_id;
  133. __entry->msg_id = msg_id;
  134. strscpy(__entry->tag, tag, 5);
  135. __entry->seq = seq;
  136. __entry->status = status;
  137. __entry->len = len;
  138. memcpy(__get_dynamic_array(cmd), buf, __entry->len);
  139. ),
  140. TP_printk("pt=%02X t=%s msg_id=%02X seq=%04X s=%d pyld=%s",
  141. __entry->protocol_id, __entry->tag, __entry->msg_id,
  142. __entry->seq, __entry->status,
  143. __print_hex_str(__get_dynamic_array(cmd), __entry->len))
  144. );
  145. #endif /* _TRACE_SCMI_H */
  146. /* This part must be outside protection */
  147. #include <trace/define_trace.h>