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
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

source code of linux/include/trace/events/spmi.h