xref: /openbmc/linux/include/trace/events/xdma.h (revision db199f57dd03e7efdb7861a1be337fac61bcbad7)
1*db199f57SEddie James /* SPDX-License-Identifier: GPL-2.0 */
2*db199f57SEddie James 
3*db199f57SEddie James #undef TRACE_SYSTEM
4*db199f57SEddie James #define TRACE_SYSTEM xdma
5*db199f57SEddie James 
6*db199f57SEddie James #if !defined(_TRACE_XDMA_H) || defined(TRACE_HEADER_MULTI_READ)
7*db199f57SEddie James #define _TRACE_XDMA_H
8*db199f57SEddie James 
9*db199f57SEddie James #include <linux/tracepoint.h>
10*db199f57SEddie James 
11*db199f57SEddie James TRACE_EVENT(xdma_start,
12*db199f57SEddie James 	TP_PROTO(const struct aspeed_xdma *ctx, const struct aspeed_xdma_cmd *cmd),
13*db199f57SEddie James 	TP_ARGS(ctx, cmd),
14*db199f57SEddie James 	TP_STRUCT__entry(
15*db199f57SEddie James 		__field(bool,	dir_upstream)
16*db199f57SEddie James 		__field(unsigned int,	index)
17*db199f57SEddie James 		__field(__u64,	host)
18*db199f57SEddie James 		__field(__u64,	pitch)
19*db199f57SEddie James 		__field(__u64,	cmd)
20*db199f57SEddie James 	),
21*db199f57SEddie James 	TP_fast_assign(
22*db199f57SEddie James 		__entry->dir_upstream = ctx->upstream;
23*db199f57SEddie James 		__entry->index = ctx->cmd_idx;
24*db199f57SEddie James 		__entry->host = cmd->host_addr;
25*db199f57SEddie James 		__entry->pitch = cmd->pitch;
26*db199f57SEddie James 		__entry->cmd = cmd->cmd;
27*db199f57SEddie James 	),
28*db199f57SEddie James 	TP_printk("%s cmd:%u [%08llx %016llx %016llx]",
29*db199f57SEddie James 		__entry->dir_upstream ? "upstream" : "downstream",
30*db199f57SEddie James 		__entry->index,
31*db199f57SEddie James 		__entry->host,
32*db199f57SEddie James 		__entry->pitch,
33*db199f57SEddie James 		__entry->cmd
34*db199f57SEddie James 	)
35*db199f57SEddie James );
36*db199f57SEddie James 
37*db199f57SEddie James TRACE_EVENT(xdma_irq,
38*db199f57SEddie James 	TP_PROTO(u32 sts),
39*db199f57SEddie James 	TP_ARGS(sts),
40*db199f57SEddie James 	TP_STRUCT__entry(
41*db199f57SEddie James 		__field(__u32,	status)
42*db199f57SEddie James 	),
43*db199f57SEddie James 	TP_fast_assign(
44*db199f57SEddie James 		__entry->status = sts;
45*db199f57SEddie James 	),
46*db199f57SEddie James 	TP_printk("sts:%08x",
47*db199f57SEddie James 		__entry->status
48*db199f57SEddie James 	)
49*db199f57SEddie James );
50*db199f57SEddie James 
51*db199f57SEddie James TRACE_EVENT(xdma_reset,
52*db199f57SEddie James 	TP_PROTO(const struct aspeed_xdma *ctx),
53*db199f57SEddie James 	TP_ARGS(ctx),
54*db199f57SEddie James 	TP_STRUCT__entry(
55*db199f57SEddie James 		__field(bool,	dir_upstream)
56*db199f57SEddie James 		__field(bool,	in_progress)
57*db199f57SEddie James 	),
58*db199f57SEddie James 	TP_fast_assign(
59*db199f57SEddie James 		__entry->dir_upstream = ctx->upstream;
60*db199f57SEddie James 		__entry->in_progress =
61*db199f57SEddie James 			ctx->current_client ? ctx->current_client->in_progress : false;
62*db199f57SEddie James 	),
63*db199f57SEddie James 	TP_printk("%sin progress%s",
64*db199f57SEddie James 		__entry->in_progress ? "" : "not ",
65*db199f57SEddie James 		__entry->in_progress ? (__entry->dir_upstream ? " upstream" : " downstream") : ""
66*db199f57SEddie James 	)
67*db199f57SEddie James );
68*db199f57SEddie James 
69*db199f57SEddie James TRACE_EVENT(xdma_perst,
70*db199f57SEddie James 	TP_PROTO(const struct aspeed_xdma *ctx),
71*db199f57SEddie James 	TP_ARGS(ctx),
72*db199f57SEddie James 	TP_STRUCT__entry(
73*db199f57SEddie James 		__field(bool,	in_reset)
74*db199f57SEddie James 	),
75*db199f57SEddie James 	TP_fast_assign(
76*db199f57SEddie James 		__entry->in_reset = ctx->in_reset;
77*db199f57SEddie James 	),
78*db199f57SEddie James 	TP_printk("%s",
79*db199f57SEddie James 		__entry->in_reset ? "in reset" : ""
80*db199f57SEddie James 	)
81*db199f57SEddie James );
82*db199f57SEddie James 
83*db199f57SEddie James TRACE_EVENT(xdma_unmap,
84*db199f57SEddie James 	TP_PROTO(const struct aspeed_xdma_client *client),
85*db199f57SEddie James 	TP_ARGS(client),
86*db199f57SEddie James 	TP_STRUCT__entry(
87*db199f57SEddie James 		__field(__u32,	phys)
88*db199f57SEddie James 		__field(__u32,	size)
89*db199f57SEddie James 	),
90*db199f57SEddie James 	TP_fast_assign(
91*db199f57SEddie James 		__entry->phys = client->phys;
92*db199f57SEddie James 		__entry->size = client->size;
93*db199f57SEddie James 	),
94*db199f57SEddie James 	TP_printk("p:%08x s:%08x",
95*db199f57SEddie James 		__entry->phys,
96*db199f57SEddie James 		__entry->size
97*db199f57SEddie James 	)
98*db199f57SEddie James );
99*db199f57SEddie James 
100*db199f57SEddie James TRACE_EVENT(xdma_mmap_error,
101*db199f57SEddie James 	TP_PROTO(const struct aspeed_xdma_client *client, unsigned long vm_start),
102*db199f57SEddie James 	TP_ARGS(client, vm_start),
103*db199f57SEddie James 	TP_STRUCT__entry(
104*db199f57SEddie James 		__field(__u32,	phys)
105*db199f57SEddie James 		__field(__u32,	size)
106*db199f57SEddie James 		__field(unsigned long,	vm_start)
107*db199f57SEddie James 	),
108*db199f57SEddie James 	TP_fast_assign(
109*db199f57SEddie James 		__entry->phys = client->phys;
110*db199f57SEddie James 		__entry->size = client->size;
111*db199f57SEddie James 		__entry->vm_start = vm_start;
112*db199f57SEddie James 	),
113*db199f57SEddie James 	TP_printk("p:%08x s:%08x v:%08lx",
114*db199f57SEddie James 		__entry->phys,
115*db199f57SEddie James 		__entry->size,
116*db199f57SEddie James 		__entry->vm_start
117*db199f57SEddie James 	)
118*db199f57SEddie James );
119*db199f57SEddie James 
120*db199f57SEddie James TRACE_EVENT(xdma_mmap,
121*db199f57SEddie James 	TP_PROTO(const struct aspeed_xdma_client *client),
122*db199f57SEddie James 	TP_ARGS(client),
123*db199f57SEddie James 	TP_STRUCT__entry(
124*db199f57SEddie James 		__field(__u32,	phys)
125*db199f57SEddie James 		__field(__u32,	size)
126*db199f57SEddie James 	),
127*db199f57SEddie James 	TP_fast_assign(
128*db199f57SEddie James 		__entry->phys = client->phys;
129*db199f57SEddie James 		__entry->size = client->size;
130*db199f57SEddie James 	),
131*db199f57SEddie James 	TP_printk("p:%08x s:%08x",
132*db199f57SEddie James 		__entry->phys,
133*db199f57SEddie James 		__entry->size
134*db199f57SEddie James 	)
135*db199f57SEddie James );
136*db199f57SEddie James 
137*db199f57SEddie James #endif /* _TRACE_XDMA_H */
138*db199f57SEddie James 
139*db199f57SEddie James #include <trace/define_trace.h>
140