137 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#undef TRACE_SYSTEM3#define TRACE_SYSTEM spmi4 5#if !defined(_TRACE_SPMI_H) || defined(TRACE_HEADER_MULTI_READ)6#define _TRACE_SPMI_H7 8#include <linux/spmi.h>9#include <linux/tracepoint.h>10 11/*12 * drivers/spmi/spmi.c13 */14 15TRACE_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 )25 ),26 27 TP_fast_assign(28 __entry->opcode = opcode;29 __entry->sid = sid;30 __entry->addr = addr;31 __entry->len = len;32 memcpy(__get_dynamic_array(buf), buf, len);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 41TRACE_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 64TRACE_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 85TRACE_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 )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;104 memcpy(__get_dynamic_array(buf), buf, len);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 113TRACE_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