xref: /linux/include/trace/events/fsi.h (revision 66433b05a3b2b8f95be9e6269bc21e916febf482)
1*66433b05SJeremy Kerr 
2*66433b05SJeremy Kerr #undef TRACE_SYSTEM
3*66433b05SJeremy Kerr #define TRACE_SYSTEM fsi
4*66433b05SJeremy Kerr 
5*66433b05SJeremy Kerr #if !defined(_TRACE_FSI_H) || defined(TRACE_HEADER_MULTI_READ)
6*66433b05SJeremy Kerr #define _TRACE_FSI_H
7*66433b05SJeremy Kerr 
8*66433b05SJeremy Kerr #include <linux/tracepoint.h>
9*66433b05SJeremy Kerr 
10*66433b05SJeremy Kerr TRACE_EVENT(fsi_master_read,
11*66433b05SJeremy Kerr 	TP_PROTO(const struct fsi_master *master, int link, int id,
12*66433b05SJeremy Kerr 			uint32_t addr, size_t size),
13*66433b05SJeremy Kerr 	TP_ARGS(master, link, id, addr, size),
14*66433b05SJeremy Kerr 	TP_STRUCT__entry(
15*66433b05SJeremy Kerr 		__field(int,	master_idx)
16*66433b05SJeremy Kerr 		__field(int,	link)
17*66433b05SJeremy Kerr 		__field(int,	id)
18*66433b05SJeremy Kerr 		__field(__u32,	addr)
19*66433b05SJeremy Kerr 		__field(size_t,	size)
20*66433b05SJeremy Kerr 	),
21*66433b05SJeremy Kerr 	TP_fast_assign(
22*66433b05SJeremy Kerr 		__entry->master_idx = master->idx;
23*66433b05SJeremy Kerr 		__entry->link = link;
24*66433b05SJeremy Kerr 		__entry->id = id;
25*66433b05SJeremy Kerr 		__entry->addr = addr;
26*66433b05SJeremy Kerr 		__entry->size = size;
27*66433b05SJeremy Kerr 	),
28*66433b05SJeremy Kerr 	TP_printk("fsi%d:%02d:%02d %08x[%zd]",
29*66433b05SJeremy Kerr 		__entry->master_idx,
30*66433b05SJeremy Kerr 		__entry->link,
31*66433b05SJeremy Kerr 		__entry->id,
32*66433b05SJeremy Kerr 		__entry->addr,
33*66433b05SJeremy Kerr 		__entry->size
34*66433b05SJeremy Kerr 	)
35*66433b05SJeremy Kerr );
36*66433b05SJeremy Kerr 
37*66433b05SJeremy Kerr TRACE_EVENT(fsi_master_write,
38*66433b05SJeremy Kerr 	TP_PROTO(const struct fsi_master *master, int link, int id,
39*66433b05SJeremy Kerr 			uint32_t addr, size_t size, const void *data),
40*66433b05SJeremy Kerr 	TP_ARGS(master, link, id, addr, size, data),
41*66433b05SJeremy Kerr 	TP_STRUCT__entry(
42*66433b05SJeremy Kerr 		__field(int,	master_idx)
43*66433b05SJeremy Kerr 		__field(int,	link)
44*66433b05SJeremy Kerr 		__field(int,	id)
45*66433b05SJeremy Kerr 		__field(__u32,	addr)
46*66433b05SJeremy Kerr 		__field(size_t,	size)
47*66433b05SJeremy Kerr 		__field(__u32,	data)
48*66433b05SJeremy Kerr 	),
49*66433b05SJeremy Kerr 	TP_fast_assign(
50*66433b05SJeremy Kerr 		__entry->master_idx = master->idx;
51*66433b05SJeremy Kerr 		__entry->link = link;
52*66433b05SJeremy Kerr 		__entry->id = id;
53*66433b05SJeremy Kerr 		__entry->addr = addr;
54*66433b05SJeremy Kerr 		__entry->size = size;
55*66433b05SJeremy Kerr 		__entry->data = 0;
56*66433b05SJeremy Kerr 		memcpy(&__entry->data, data, size);
57*66433b05SJeremy Kerr 	),
58*66433b05SJeremy Kerr 	TP_printk("fsi%d:%02d:%02d %08x[%zd] <= {%*ph}",
59*66433b05SJeremy Kerr 		__entry->master_idx,
60*66433b05SJeremy Kerr 		__entry->link,
61*66433b05SJeremy Kerr 		__entry->id,
62*66433b05SJeremy Kerr 		__entry->addr,
63*66433b05SJeremy Kerr 		__entry->size,
64*66433b05SJeremy Kerr 		(int)__entry->size, &__entry->data
65*66433b05SJeremy Kerr 	)
66*66433b05SJeremy Kerr );
67*66433b05SJeremy Kerr 
68*66433b05SJeremy Kerr TRACE_EVENT(fsi_master_rw_result,
69*66433b05SJeremy Kerr 	TP_PROTO(const struct fsi_master *master, int link, int id,
70*66433b05SJeremy Kerr 			uint32_t addr, size_t size,
71*66433b05SJeremy Kerr 			bool write, const void *data, int ret),
72*66433b05SJeremy Kerr 	TP_ARGS(master, link, id, addr, size, write, data, ret),
73*66433b05SJeremy Kerr 	TP_STRUCT__entry(
74*66433b05SJeremy Kerr 		__field(int,	master_idx)
75*66433b05SJeremy Kerr 		__field(int,	link)
76*66433b05SJeremy Kerr 		__field(int,	id)
77*66433b05SJeremy Kerr 		__field(__u32,	addr)
78*66433b05SJeremy Kerr 		__field(size_t,	size)
79*66433b05SJeremy Kerr 		__field(bool,	write)
80*66433b05SJeremy Kerr 		__field(__u32,	data)
81*66433b05SJeremy Kerr 		__field(int,	ret)
82*66433b05SJeremy Kerr 	),
83*66433b05SJeremy Kerr 	TP_fast_assign(
84*66433b05SJeremy Kerr 		__entry->master_idx = master->idx;
85*66433b05SJeremy Kerr 		__entry->link = link;
86*66433b05SJeremy Kerr 		__entry->id = id;
87*66433b05SJeremy Kerr 		__entry->addr = addr;
88*66433b05SJeremy Kerr 		__entry->size = size;
89*66433b05SJeremy Kerr 		__entry->write = write;
90*66433b05SJeremy Kerr 		__entry->data = 0;
91*66433b05SJeremy Kerr 		__entry->ret = ret;
92*66433b05SJeremy Kerr 		if (__entry->write || !__entry->ret)
93*66433b05SJeremy Kerr 			memcpy(&__entry->data, data, size);
94*66433b05SJeremy Kerr 	),
95*66433b05SJeremy Kerr 	TP_printk("fsi%d:%02d:%02d %08x[%zd] %s {%*ph} ret %d",
96*66433b05SJeremy Kerr 		__entry->master_idx,
97*66433b05SJeremy Kerr 		__entry->link,
98*66433b05SJeremy Kerr 		__entry->id,
99*66433b05SJeremy Kerr 		__entry->addr,
100*66433b05SJeremy Kerr 		__entry->size,
101*66433b05SJeremy Kerr 		__entry->write ? "<=" : "=>",
102*66433b05SJeremy Kerr 		(int)__entry->size, &__entry->data,
103*66433b05SJeremy Kerr 		__entry->ret
104*66433b05SJeremy Kerr 	)
105*66433b05SJeremy Kerr );
106*66433b05SJeremy Kerr 
107*66433b05SJeremy Kerr TRACE_EVENT(fsi_master_break,
108*66433b05SJeremy Kerr 	TP_PROTO(const struct fsi_master *master, int link),
109*66433b05SJeremy Kerr 	TP_ARGS(master, link),
110*66433b05SJeremy Kerr 	TP_STRUCT__entry(
111*66433b05SJeremy Kerr 		__field(int,	master_idx)
112*66433b05SJeremy Kerr 		__field(int,	link)
113*66433b05SJeremy Kerr 	),
114*66433b05SJeremy Kerr 	TP_fast_assign(
115*66433b05SJeremy Kerr 		__entry->master_idx = master->idx;
116*66433b05SJeremy Kerr 		__entry->link = link;
117*66433b05SJeremy Kerr 	),
118*66433b05SJeremy Kerr 	TP_printk("fsi%d:%d",
119*66433b05SJeremy Kerr 		__entry->master_idx,
120*66433b05SJeremy Kerr 		__entry->link
121*66433b05SJeremy Kerr 	)
122*66433b05SJeremy Kerr );
123*66433b05SJeremy Kerr 
124*66433b05SJeremy Kerr 
125*66433b05SJeremy Kerr #endif /* _TRACE_FSI_H */
126*66433b05SJeremy Kerr 
127*66433b05SJeremy Kerr #include <trace/define_trace.h>
128