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