1 #if !defined(_TRACE_TEGRA_APB_DMA_H) || defined(TRACE_HEADER_MULTI_READ)
2 #define _TRACE_TEGRA_APM_DMA_H
3 
4 #include <linux/tracepoint.h>
5 #include <linux/dmaengine.h>
6 
7 #undef TRACE_SYSTEM
8 #define TRACE_SYSTEM tegra_apb_dma
9 
10 TRACE_EVENT(tegra_dma_tx_status,
11 	TP_PROTO(struct dma_chan *dc, dma_cookie_t cookie, struct dma_tx_state *state),
12 	TP_ARGS(dc, cookie, state),
13 	TP_STRUCT__entry(
14 		__string(chan,	dev_name(&dc->dev->device))
15 		__field(dma_cookie_t, cookie)
16 		__field(__u32,	residue)
17 	),
18 	TP_fast_assign(
19 		__assign_str(chan, dev_name(&dc->dev->device));
20 		__entry->cookie = cookie;
21 		__entry->residue = state ? state->residue : (u32)-1;
22 	),
23 	TP_printk("channel %s: dma cookie %d, residue %u",
24 		  __get_str(chan), __entry->cookie, __entry->residue)
25 );
26 
27 TRACE_EVENT(tegra_dma_complete_cb,
28 	TP_PROTO(struct dma_chan *dc, int count, void *ptr),
29 	TP_ARGS(dc, count, ptr),
30 	TP_STRUCT__entry(
31 		__string(chan,	dev_name(&dc->dev->device))
32 		__field(int,	count)
33 		__field(void *,	ptr)
34 		),
35 	TP_fast_assign(
36 		__assign_str(chan, dev_name(&dc->dev->device));
37 		__entry->count = count;
38 		__entry->ptr = ptr;
39 		),
40 	TP_printk("channel %s: done %d, ptr %p",
41 		  __get_str(chan), __entry->count, __entry->ptr)
42 );
43 
44 TRACE_EVENT(tegra_dma_isr,
45 	TP_PROTO(struct dma_chan *dc, int irq),
46 	TP_ARGS(dc, irq),
47 	TP_STRUCT__entry(
48 		__string(chan,	dev_name(&dc->dev->device))
49 		__field(int,	irq)
50 	),
51 	TP_fast_assign(
52 		__assign_str(chan, dev_name(&dc->dev->device));
53 		__entry->irq = irq;
54 	),
55 	TP_printk("%s: irq %d\n",  __get_str(chan), __entry->irq)
56 );
57 
58 #endif /*  _TRACE_TEGRADMA_H */
59 
60 /* This part must be outside protection */
61 #include <trace/define_trace.h>
62