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