| /* SPDX-License-Identifier: GPL-2.0 */ |
| |
| #undef TRACE_SYSTEM |
| #define TRACE_SYSTEM xdma |
| |
| #if !defined(_TRACE_XDMA_H) || defined(TRACE_HEADER_MULTI_READ) |
| #define _TRACE_XDMA_H |
| |
| #include <linux/tracepoint.h> |
| |
| TRACE_EVENT(xdma_start, |
| TP_PROTO(const struct aspeed_xdma *ctx, const struct aspeed_xdma_cmd *cmd), |
| TP_ARGS(ctx, cmd), |
| TP_STRUCT__entry( |
| __field(bool, dir_upstream) |
| __field(unsigned int, index) |
| __field(__u64, host) |
| __field(__u64, pitch) |
| __field(__u64, cmd) |
| ), |
| TP_fast_assign( |
| __entry->dir_upstream = ctx->upstream; |
| __entry->index = ctx->cmd_idx; |
| __entry->host = cmd->host_addr; |
| __entry->pitch = cmd->pitch; |
| __entry->cmd = cmd->cmd; |
| ), |
| TP_printk("%s cmd:%u [%08llx %016llx %016llx]", |
| __entry->dir_upstream ? "upstream" : "downstream", |
| __entry->index, |
| __entry->host, |
| __entry->pitch, |
| __entry->cmd |
| ) |
| ); |
| |
| TRACE_EVENT(xdma_irq, |
| TP_PROTO(u32 sts), |
| TP_ARGS(sts), |
| TP_STRUCT__entry( |
| __field(__u32, status) |
| ), |
| TP_fast_assign( |
| __entry->status = sts; |
| ), |
| TP_printk("sts:%08x", |
| __entry->status |
| ) |
| ); |
| |
| TRACE_EVENT(xdma_reset, |
| TP_PROTO(const struct aspeed_xdma *ctx), |
| TP_ARGS(ctx), |
| TP_STRUCT__entry( |
| __field(bool, dir_upstream) |
| __field(bool, in_progress) |
| ), |
| TP_fast_assign( |
| __entry->dir_upstream = ctx->upstream; |
| __entry->in_progress = |
| ctx->current_client ? ctx->current_client->in_progress : false; |
| ), |
| TP_printk("%sin progress%s", |
| __entry->in_progress ? "" : "not ", |
| __entry->in_progress ? (__entry->dir_upstream ? " upstream" : " downstream") : "" |
| ) |
| ); |
| |
| TRACE_EVENT(xdma_perst, |
| TP_PROTO(const struct aspeed_xdma *ctx), |
| TP_ARGS(ctx), |
| TP_STRUCT__entry( |
| __field(bool, in_reset) |
| ), |
| TP_fast_assign( |
| __entry->in_reset = ctx->in_reset; |
| ), |
| TP_printk("%s", |
| __entry->in_reset ? "in reset" : "" |
| ) |
| ); |
| |
| TRACE_EVENT(xdma_unmap, |
| TP_PROTO(const struct aspeed_xdma_client *client), |
| TP_ARGS(client), |
| TP_STRUCT__entry( |
| __field(__u32, phys) |
| __field(__u32, size) |
| ), |
| TP_fast_assign( |
| __entry->phys = client->phys; |
| __entry->size = client->size; |
| ), |
| TP_printk("p:%08x s:%08x", |
| __entry->phys, |
| __entry->size |
| ) |
| ); |
| |
| TRACE_EVENT(xdma_mmap_error, |
| TP_PROTO(const struct aspeed_xdma_client *client, unsigned long vm_start), |
| TP_ARGS(client, vm_start), |
| TP_STRUCT__entry( |
| __field(__u32, phys) |
| __field(__u32, size) |
| __field(unsigned long, vm_start) |
| ), |
| TP_fast_assign( |
| __entry->phys = client->phys; |
| __entry->size = client->size; |
| __entry->vm_start = vm_start; |
| ), |
| TP_printk("p:%08x s:%08x v:%08lx", |
| __entry->phys, |
| __entry->size, |
| __entry->vm_start |
| ) |
| ); |
| |
| TRACE_EVENT(xdma_mmap, |
| TP_PROTO(const struct aspeed_xdma_client *client), |
| TP_ARGS(client), |
| TP_STRUCT__entry( |
| __field(__u32, phys) |
| __field(__u32, size) |
| ), |
| TP_fast_assign( |
| __entry->phys = client->phys; |
| __entry->size = client->size; |
| ), |
| TP_printk("p:%08x s:%08x", |
| __entry->phys, |
| __entry->size |
| ) |
| ); |
| |
| #endif /* _TRACE_XDMA_H */ |
| |
| #include <trace/define_trace.h> |