Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1/* SPDX-License-Identifier: GPL-2.0+ */
2/*
3 * Copyright 2023 NXP.
4 */
5
6#undef TRACE_SYSTEM
7#define TRACE_SYSTEM fsl_edma
8
9#if !defined(__LINUX_FSL_EDMA_TRACE) || defined(TRACE_HEADER_MULTI_READ)
10#define __LINUX_FSL_EDMA_TRACE
11
12#include <linux/types.h>
13#include <linux/tracepoint.h>
14
15DECLARE_EVENT_CLASS(edma_log_io,
16 TP_PROTO(struct fsl_edma_engine *edma, void __iomem *addr, u32 value),
17 TP_ARGS(edma, addr, value),
18 TP_STRUCT__entry(
19 __field(struct fsl_edma_engine *, edma)
20 __field(void __iomem *, addr)
21 __field(u32, value)
22 ),
23 TP_fast_assign(
24 __entry->edma = edma;
25 __entry->addr = addr;
26 __entry->value = value;
27 ),
28 TP_printk("offset %08x: value %08x",
29 (u32)(__entry->addr - __entry->edma->membase), __entry->value)
30);
31
32DEFINE_EVENT(edma_log_io, edma_readl,
33 TP_PROTO(struct fsl_edma_engine *edma, void __iomem *addr, u32 value),
34 TP_ARGS(edma, addr, value)
35);
36
37DEFINE_EVENT(edma_log_io, edma_writel,
38 TP_PROTO(struct fsl_edma_engine *edma, void __iomem *addr, u32 value),
39 TP_ARGS(edma, addr, value)
40);
41
42DEFINE_EVENT(edma_log_io, edma_readw,
43 TP_PROTO(struct fsl_edma_engine *edma, void __iomem *addr, u32 value),
44 TP_ARGS(edma, addr, value)
45);
46
47DEFINE_EVENT(edma_log_io, edma_writew,
48 TP_PROTO(struct fsl_edma_engine *edma, void __iomem *addr, u32 value),
49 TP_ARGS(edma, addr, value)
50);
51
52DEFINE_EVENT(edma_log_io, edma_readb,
53 TP_PROTO(struct fsl_edma_engine *edma, void __iomem *addr, u32 value),
54 TP_ARGS(edma, addr, value)
55);
56
57DEFINE_EVENT(edma_log_io, edma_writeb,
58 TP_PROTO(struct fsl_edma_engine *edma, void __iomem *addr, u32 value),
59 TP_ARGS(edma, addr, value)
60);
61
62DECLARE_EVENT_CLASS(edma_log_tcd,
63 TP_PROTO(struct fsl_edma_chan *chan, void *tcd),
64 TP_ARGS(chan, tcd),
65 TP_STRUCT__entry(
66 __field(u64, saddr)
67 __field(u16, soff)
68 __field(u16, attr)
69 __field(u32, nbytes)
70 __field(u64, slast)
71 __field(u64, daddr)
72 __field(u16, doff)
73 __field(u16, citer)
74 __field(u64, dlast_sga)
75 __field(u16, csr)
76 __field(u16, biter)
77
78 ),
79 TP_fast_assign(
80 __entry->saddr = fsl_edma_get_tcd_to_cpu(chan, tcd, saddr),
81 __entry->soff = fsl_edma_get_tcd_to_cpu(chan, tcd, soff),
82 __entry->attr = fsl_edma_get_tcd_to_cpu(chan, tcd, attr),
83 __entry->nbytes = fsl_edma_get_tcd_to_cpu(chan, tcd, nbytes),
84 __entry->slast = fsl_edma_get_tcd_to_cpu(chan, tcd, slast),
85 __entry->daddr = fsl_edma_get_tcd_to_cpu(chan, tcd, daddr),
86 __entry->doff = fsl_edma_get_tcd_to_cpu(chan, tcd, doff),
87 __entry->citer = fsl_edma_get_tcd_to_cpu(chan, tcd, citer),
88 __entry->dlast_sga = fsl_edma_get_tcd_to_cpu(chan, tcd, dlast_sga),
89 __entry->csr = fsl_edma_get_tcd_to_cpu(chan, tcd, csr),
90 __entry->biter = fsl_edma_get_tcd_to_cpu(chan, tcd, biter);
91 ),
92 TP_printk("\n==== TCD =====\n"
93 " saddr: 0x%016llx\n"
94 " soff: 0x%04x\n"
95 " attr: 0x%04x\n"
96 " nbytes: 0x%08x\n"
97 " slast: 0x%016llx\n"
98 " daddr: 0x%016llx\n"
99 " doff: 0x%04x\n"
100 " citer: 0x%04x\n"
101 " dlast: 0x%016llx\n"
102 " csr: 0x%04x\n"
103 " biter: 0x%04x\n",
104 __entry->saddr,
105 __entry->soff,
106 __entry->attr,
107 __entry->nbytes,
108 __entry->slast,
109 __entry->daddr,
110 __entry->doff,
111 __entry->citer,
112 __entry->dlast_sga,
113 __entry->csr,
114 __entry->biter)
115);
116
117DEFINE_EVENT(edma_log_tcd, edma_fill_tcd,
118 TP_PROTO(struct fsl_edma_chan *chan, void *tcd),
119 TP_ARGS(chan, tcd)
120);
121
122#endif
123
124/* this part must be outside header guard */
125
126#undef TRACE_INCLUDE_PATH
127#define TRACE_INCLUDE_PATH .
128
129#undef TRACE_INCLUDE_FILE
130#define TRACE_INCLUDE_FILE fsl-edma-trace
131
132#include <trace/define_trace.h>