0001 #if !defined(_TRACE_TEGRA_APB_DMA_H) || defined(TRACE_HEADER_MULTI_READ)
0002 #define _TRACE_TEGRA_APB_DMA_H
0003
0004 #include <linux/tracepoint.h>
0005 #include <linux/dmaengine.h>
0006
0007 #undef TRACE_SYSTEM
0008 #define TRACE_SYSTEM tegra_apb_dma
0009
0010 TRACE_EVENT(tegra_dma_tx_status,
0011 TP_PROTO(struct dma_chan *dc, dma_cookie_t cookie, struct dma_tx_state *state),
0012 TP_ARGS(dc, cookie, state),
0013 TP_STRUCT__entry(
0014 __string(chan, dev_name(&dc->dev->device))
0015 __field(dma_cookie_t, cookie)
0016 __field(__u32, residue)
0017 ),
0018 TP_fast_assign(
0019 __assign_str(chan, dev_name(&dc->dev->device));
0020 __entry->cookie = cookie;
0021 __entry->residue = state ? state->residue : (u32)-1;
0022 ),
0023 TP_printk("channel %s: dma cookie %d, residue %u",
0024 __get_str(chan), __entry->cookie, __entry->residue)
0025 );
0026
0027 TRACE_EVENT(tegra_dma_complete_cb,
0028 TP_PROTO(struct dma_chan *dc, int count, void *ptr),
0029 TP_ARGS(dc, count, ptr),
0030 TP_STRUCT__entry(
0031 __string(chan, dev_name(&dc->dev->device))
0032 __field(int, count)
0033 __field(void *, ptr)
0034 ),
0035 TP_fast_assign(
0036 __assign_str(chan, dev_name(&dc->dev->device));
0037 __entry->count = count;
0038 __entry->ptr = ptr;
0039 ),
0040 TP_printk("channel %s: done %d, ptr %p",
0041 __get_str(chan), __entry->count, __entry->ptr)
0042 );
0043
0044 TRACE_EVENT(tegra_dma_isr,
0045 TP_PROTO(struct dma_chan *dc, int irq),
0046 TP_ARGS(dc, irq),
0047 TP_STRUCT__entry(
0048 __string(chan, dev_name(&dc->dev->device))
0049 __field(int, irq)
0050 ),
0051 TP_fast_assign(
0052 __assign_str(chan, dev_name(&dc->dev->device));
0053 __entry->irq = irq;
0054 ),
0055 TP_printk("%s: irq %d\n", __get_str(chan), __entry->irq)
0056 );
0057
0058 #endif
0059
0060
0061 #include <trace/define_trace.h>