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