diff options
author | Cristian Marussi <cristian.marussi@arm.com> | 2022-06-30 19:31:34 +0200 |
---|---|---|
committer | Sudeep Holla <sudeep.holla@arm.com> | 2022-07-04 15:28:42 +0200 |
commit | 2bd0467074f078372ac2c979c56dc94228c90fbf (patch) | |
tree | bf3f4446d06441b7684b4f5d75dd5fd9fb879cfe | |
parent | firmware: arm_scpi: Ensure scpi_info is not assigned if the probe fails (diff) | |
download | linux-2bd0467074f078372ac2c979c56dc94228c90fbf.tar.xz linux-2bd0467074f078372ac2c979c56dc94228c90fbf.zip |
include: trace: Add SCMI full message tracing
Add a distinct trace event to dump full SCMI message headers and payloads.
Link: https://lore.kernel.org/r/20220630173135.2086631-2-cristian.marussi@arm.com
Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
-rw-r--r-- | include/trace/events/scmi.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/include/trace/events/scmi.h b/include/trace/events/scmi.h index cee4b2b64ae4..9108544beca9 100644 --- a/include/trace/events/scmi.h +++ b/include/trace/events/scmi.h @@ -112,6 +112,37 @@ TRACE_EVENT(scmi_rx_done, __entry->transfer_id, __entry->msg_id, __entry->protocol_id, __entry->seq, __entry->msg_type) ); + +TRACE_EVENT(scmi_msg_dump, + TP_PROTO(u8 protocol_id, u8 msg_id, unsigned char *tag, u16 seq, + int status, void *buf, size_t len), + TP_ARGS(protocol_id, msg_id, tag, seq, status, buf, len), + + TP_STRUCT__entry( + __field(u8, protocol_id) + __field(u8, msg_id) + __array(char, tag, 5) + __field(u16, seq) + __field(int, status) + __field(size_t, len) + __dynamic_array(unsigned char, cmd, len) + ), + + TP_fast_assign( + __entry->protocol_id = protocol_id; + __entry->msg_id = msg_id; + strscpy(__entry->tag, tag, 5); + __entry->seq = seq; + __entry->status = status; + __entry->len = len; + memcpy(__get_dynamic_array(cmd), buf, __entry->len); + ), + + TP_printk("pt=%02X t=%s msg_id=%02X seq=%04X s=%d pyld=%s", + __entry->protocol_id, __entry->tag, __entry->msg_id, + __entry->seq, __entry->status, + __print_hex_str(__get_dynamic_array(cmd), __entry->len)) +); #endif /* _TRACE_SCMI_H */ /* This part must be outside protection */ |