1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
6 #define TRACE_SYSTEM rwmmio
8 #if !defined(_TRACE_RWMMIO_H) || defined(TRACE_HEADER_MULTI_READ)
9 #define _TRACE_RWMMIO_H
11 #include <linux/tracepoint.h>
13 DECLARE_EVENT_CLASS(rwmmio_rw_template,
15 TP_PROTO(unsigned long caller, unsigned long caller0, u64 val, u8 width,
16 volatile void __iomem *addr),
18 TP_ARGS(caller, caller0, val, width, addr),
21 __field(unsigned long, caller)
22 __field(unsigned long, caller0)
23 __field(unsigned long, addr)
29 __entry->caller = caller;
30 __entry->caller0 = caller0;
32 __entry->addr = (unsigned long)addr;
33 __entry->width = width;
36 TP_printk("%pS -> %pS width=%d val=%#llx addr=%#lx",
37 (void *)__entry->caller0, (void *)__entry->caller, __entry->width,
38 __entry->val, __entry->addr)
41 DEFINE_EVENT(rwmmio_rw_template, rwmmio_write,
42 TP_PROTO(unsigned long caller, unsigned long caller0, u64 val, u8 width,
43 volatile void __iomem *addr),
44 TP_ARGS(caller, caller0, val, width, addr)
47 DEFINE_EVENT(rwmmio_rw_template, rwmmio_post_write,
48 TP_PROTO(unsigned long caller, unsigned long caller0, u64 val, u8 width,
49 volatile void __iomem *addr),
50 TP_ARGS(caller, caller0, val, width, addr)
53 TRACE_EVENT(rwmmio_read,
55 TP_PROTO(unsigned long caller, unsigned long caller0, u8 width,
56 const volatile void __iomem *addr),
58 TP_ARGS(caller, caller0, width, addr),
61 __field(unsigned long, caller)
62 __field(unsigned long, caller0)
63 __field(unsigned long, addr)
68 __entry->caller = caller;
69 __entry->caller0 = caller0;
70 __entry->addr = (unsigned long)addr;
71 __entry->width = width;
74 TP_printk("%pS -> %pS width=%d addr=%#lx",
75 (void *)__entry->caller0, (void *)__entry->caller, __entry->width, __entry->addr)
78 TRACE_EVENT(rwmmio_post_read,
80 TP_PROTO(unsigned long caller, unsigned long caller0, u64 val, u8 width,
81 const volatile void __iomem *addr),
83 TP_ARGS(caller, caller0, val, width, addr),
86 __field(unsigned long, caller)
87 __field(unsigned long, caller0)
88 __field(unsigned long, addr)
94 __entry->caller = caller;
95 __entry->caller0 = caller0;
97 __entry->addr = (unsigned long)addr;
98 __entry->width = width;
101 TP_printk("%pS -> %pS width=%d val=%#llx addr=%#lx",
102 (void *)__entry->caller0, (void *)__entry->caller, __entry->width,
103 __entry->val, __entry->addr)
106 #endif /* _TRACE_RWMMIO_H */
108 #include <trace/define_trace.h>