^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * Copyright (c) 2021, The Linux Foundation. All rights reserved.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) #undef TRACE_SYSTEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) #define TRACE_SYSTEM rwmmio
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #if !defined(_TRACE_MMIO_H) || defined(TRACE_HEADER_MULTI_READ)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #define _TRACE_MMIO_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #include <linux/tracepoint.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) TRACE_EVENT(rwmmio_write,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) TP_PROTO(unsigned long fn, u64 val, u8 width, volatile void __iomem *addr),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) TP_ARGS(fn, val, width, addr),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) __field(u64, fn)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) __field(u64, val)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) __field(u8, width)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) __field(u64, addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) __entry->fn = fn;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) __entry->val = val;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) __entry->width = width;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) __entry->addr = (u64)addr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) TP_printk("%llxS write addr=%llx of width=%x val=0x%llx\n",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) __entry->fn, __entry->addr, __entry->width, __entry->val)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) TRACE_EVENT(rwmmio_read,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) TP_PROTO(unsigned long fn, u8 width, const volatile void __iomem *addr),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) TP_ARGS(fn, width, addr),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) __field(u64, fn)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) __field(u8, width)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) __field(u64, addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) __entry->fn = fn;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) __entry->width = width;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) __entry->addr = (u64)addr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) TP_printk("%llxS read addr=%llx of width=%x\n",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) __entry->fn, __entry->addr, __entry->width)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) TRACE_EVENT(rwmmio_post_read,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) TP_PROTO(unsigned long fn, u64 val, u8 width, const volatile void __iomem *addr),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) TP_ARGS(fn, val, width, addr),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) __field(u64, fn)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) __field(u64, val)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) __field(u8, width)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) __field(u64, addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) __entry->fn = fn;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) __entry->val = val;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) __entry->width = width;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) __entry->addr = (u64)addr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) TP_printk("%llxS read addr=%llx of width=%x val=0x%llx\n",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) __entry->fn, __entry->addr, __entry->width, __entry->val)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) #endif /* _TRACE_MMIO_H */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) #include <trace/define_trace.h>