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