1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #undef TRACE_SYSTEM 3 #define TRACE_SYSTEM spmi 4 5 #if !defined(_TRACE_SPMI_H) || defined(TRACE_HEADER_MULTI_READ) 6 #define _TRACE_SPMI_H 7 8 #include <linux/spmi.h> 9 #include <linux/tracepoint.h> 10 11 /* 12 * drivers/spmi/spmi.c 13 */ 14 15 TRACE_EVENT(spmi_write_begin, 16 TP_PROTO(u8 opcode, u8 sid, u16 addr, u8 len, const u8 *buf), 17 TP_ARGS(opcode, sid, addr, len, buf), 18 19 TP_STRUCT__entry( 20 __field ( u8, opcode ) 21 __field ( u8, sid ) 22 __field ( u16, addr ) 23 __field ( u8, len ) 24 __dynamic_array ( u8, buf, len + 1 ) 25 ), 26 27 TP_fast_assign( 28 __entry->opcode = opcode; 29 __entry->sid = sid; 30 __entry->addr = addr; 31 __entry->len = len + 1; 32 memcpy(__get_dynamic_array(buf), buf, len + 1); 33 ), 34 35 TP_printk("opc=%d sid=%02d addr=0x%04x len=%d buf=0x[%*phD]", 36 (int)__entry->opcode, (int)__entry->sid, 37 (int)__entry->addr, (int)__entry->len, 38 (int)__entry->len, __get_dynamic_array(buf)) 39 ); 40 41 TRACE_EVENT(spmi_write_end, 42 TP_PROTO(u8 opcode, u8 sid, u16 addr, int ret), 43 TP_ARGS(opcode, sid, addr, ret), 44 45 TP_STRUCT__entry( 46 __field ( u8, opcode ) 47 __field ( u8, sid ) 48 __field ( u16, addr ) 49 __field ( int, ret ) 50 ), 51 52 TP_fast_assign( 53 __entry->opcode = opcode; 54 __entry->sid = sid; 55 __entry->addr = addr; 56 __entry->ret = ret; 57 ), 58 59 TP_printk("opc=%d sid=%02d addr=0x%04x ret=%d", 60 (int)__entry->opcode, (int)__entry->sid, 61 (int)__entry->addr, __entry->ret) 62 ); 63 64 TRACE_EVENT(spmi_read_begin, 65 TP_PROTO(u8 opcode, u8 sid, u16 addr), 66 TP_ARGS(opcode, sid, addr), 67 68 TP_STRUCT__entry( 69 __field ( u8, opcode ) 70 __field ( u8, sid ) 71 __field ( u16, addr ) 72 ), 73 74 TP_fast_assign( 75 __entry->opcode = opcode; 76 __entry->sid = sid; 77 __entry->addr = addr; 78 ), 79 80 TP_printk("opc=%d sid=%02d addr=0x%04x", 81 (int)__entry->opcode, (int)__entry->sid, 82 (int)__entry->addr) 83 ); 84 85 TRACE_EVENT(spmi_read_end, 86 TP_PROTO(u8 opcode, u8 sid, u16 addr, int ret, u8 len, const u8 *buf), 87 TP_ARGS(opcode, sid, addr, ret, len, buf), 88 89 TP_STRUCT__entry( 90 __field ( u8, opcode ) 91 __field ( u8, sid ) 92 __field ( u16, addr ) 93 __field ( int, ret ) 94 __field ( u8, len ) 95 __dynamic_array ( u8, buf, len + 1 ) 96 ), 97 98 TP_fast_assign( 99 __entry->opcode = opcode; 100 __entry->sid = sid; 101 __entry->addr = addr; 102 __entry->ret = ret; 103 __entry->len = len + 1; 104 memcpy(__get_dynamic_array(buf), buf, len + 1); 105 ), 106 107 TP_printk("opc=%d sid=%02d addr=0x%04x ret=%d len=%02d buf=0x[%*phD]", 108 (int)__entry->opcode, (int)__entry->sid, 109 (int)__entry->addr, __entry->ret, (int)__entry->len, 110 (int)__entry->len, __get_dynamic_array(buf)) 111 ); 112 113 TRACE_EVENT(spmi_cmd, 114 TP_PROTO(u8 opcode, u8 sid, int ret), 115 TP_ARGS(opcode, sid, ret), 116 117 TP_STRUCT__entry( 118 __field ( u8, opcode ) 119 __field ( u8, sid ) 120 __field ( int, ret ) 121 ), 122 123 TP_fast_assign( 124 __entry->opcode = opcode; 125 __entry->sid = sid; 126 __entry->ret = ret; 127 ), 128 129 TP_printk("opc=%d sid=%02d ret=%d", (int)__entry->opcode, 130 (int)__entry->sid, ret) 131 ); 132 133 #endif /* _TRACE_SPMI_H */ 134 135 /* This part must be outside protection */ 136 #include <trace/define_trace.h> 137