133 lines · c
1/* SPDX-License-Identifier: GPL-2.0+ */2/*3 * Copyright 2023 NXP.4 */5 6#undef TRACE_SYSTEM7#define TRACE_SYSTEM fsl_edma8 9#if !defined(__LINUX_FSL_EDMA_TRACE) || defined(TRACE_HEADER_MULTI_READ)10#define __LINUX_FSL_EDMA_TRACE11 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#endif123 124/* this part must be outside header guard */125 126#undef TRACE_INCLUDE_PATH127#define TRACE_INCLUDE_PATH .128 129#undef TRACE_INCLUDE_FILE130#define TRACE_INCLUDE_FILE fsl-edma-trace131 132#include <trace/define_trace.h>133