1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #undef TRACE_SYSTEM 3*4882a593Smuzhiyun #define TRACE_SYSTEM scmi 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #if !defined(_TRACE_SCMI_H) || defined(TRACE_HEADER_MULTI_READ) 6*4882a593Smuzhiyun #define _TRACE_SCMI_H 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun #include <linux/tracepoint.h> 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun TRACE_EVENT(scmi_xfer_begin, 11*4882a593Smuzhiyun TP_PROTO(int transfer_id, u8 msg_id, u8 protocol_id, u16 seq, 12*4882a593Smuzhiyun bool poll), 13*4882a593Smuzhiyun TP_ARGS(transfer_id, msg_id, protocol_id, seq, poll), 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun TP_STRUCT__entry( 16*4882a593Smuzhiyun __field(int, transfer_id) 17*4882a593Smuzhiyun __field(u8, msg_id) 18*4882a593Smuzhiyun __field(u8, protocol_id) 19*4882a593Smuzhiyun __field(u16, seq) 20*4882a593Smuzhiyun __field(bool, poll) 21*4882a593Smuzhiyun ), 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun TP_fast_assign( 24*4882a593Smuzhiyun __entry->transfer_id = transfer_id; 25*4882a593Smuzhiyun __entry->msg_id = msg_id; 26*4882a593Smuzhiyun __entry->protocol_id = protocol_id; 27*4882a593Smuzhiyun __entry->seq = seq; 28*4882a593Smuzhiyun __entry->poll = poll; 29*4882a593Smuzhiyun ), 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun TP_printk("transfer_id=%d msg_id=%u protocol_id=%u seq=%u poll=%u", 32*4882a593Smuzhiyun __entry->transfer_id, __entry->msg_id, __entry->protocol_id, 33*4882a593Smuzhiyun __entry->seq, __entry->poll) 34*4882a593Smuzhiyun ); 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun TRACE_EVENT(scmi_xfer_end, 37*4882a593Smuzhiyun TP_PROTO(int transfer_id, u8 msg_id, u8 protocol_id, u16 seq, 38*4882a593Smuzhiyun int status), 39*4882a593Smuzhiyun TP_ARGS(transfer_id, msg_id, protocol_id, seq, status), 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun TP_STRUCT__entry( 42*4882a593Smuzhiyun __field(int, transfer_id) 43*4882a593Smuzhiyun __field(u8, msg_id) 44*4882a593Smuzhiyun __field(u8, protocol_id) 45*4882a593Smuzhiyun __field(u16, seq) 46*4882a593Smuzhiyun __field(int, status) 47*4882a593Smuzhiyun ), 48*4882a593Smuzhiyun 49*4882a593Smuzhiyun TP_fast_assign( 50*4882a593Smuzhiyun __entry->transfer_id = transfer_id; 51*4882a593Smuzhiyun __entry->msg_id = msg_id; 52*4882a593Smuzhiyun __entry->protocol_id = protocol_id; 53*4882a593Smuzhiyun __entry->seq = seq; 54*4882a593Smuzhiyun __entry->status = status; 55*4882a593Smuzhiyun ), 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun TP_printk("transfer_id=%d msg_id=%u protocol_id=%u seq=%u status=%d", 58*4882a593Smuzhiyun __entry->transfer_id, __entry->msg_id, __entry->protocol_id, 59*4882a593Smuzhiyun __entry->seq, __entry->status) 60*4882a593Smuzhiyun ); 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun TRACE_EVENT(scmi_rx_done, 63*4882a593Smuzhiyun TP_PROTO(int transfer_id, u8 msg_id, u8 protocol_id, u16 seq, 64*4882a593Smuzhiyun u8 msg_type), 65*4882a593Smuzhiyun TP_ARGS(transfer_id, msg_id, protocol_id, seq, msg_type), 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun TP_STRUCT__entry( 68*4882a593Smuzhiyun __field(int, transfer_id) 69*4882a593Smuzhiyun __field(u8, msg_id) 70*4882a593Smuzhiyun __field(u8, protocol_id) 71*4882a593Smuzhiyun __field(u16, seq) 72*4882a593Smuzhiyun __field(u8, msg_type) 73*4882a593Smuzhiyun ), 74*4882a593Smuzhiyun 75*4882a593Smuzhiyun TP_fast_assign( 76*4882a593Smuzhiyun __entry->transfer_id = transfer_id; 77*4882a593Smuzhiyun __entry->msg_id = msg_id; 78*4882a593Smuzhiyun __entry->protocol_id = protocol_id; 79*4882a593Smuzhiyun __entry->seq = seq; 80*4882a593Smuzhiyun __entry->msg_type = msg_type; 81*4882a593Smuzhiyun ), 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun TP_printk("transfer_id=%d msg_id=%u protocol_id=%u seq=%u msg_type=%u", 84*4882a593Smuzhiyun __entry->transfer_id, __entry->msg_id, __entry->protocol_id, 85*4882a593Smuzhiyun __entry->seq, __entry->msg_type) 86*4882a593Smuzhiyun ); 87*4882a593Smuzhiyun #endif /* _TRACE_SCMI_H */ 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun /* This part must be outside protection */ 90*4882a593Smuzhiyun #include <trace/define_trace.h> 91