1 | // SPDX-License-Identifier: GPL-2.0-only |
2 | /* |
3 | * Register read and write tracepoints |
4 | * |
5 | * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. |
6 | */ |
7 | |
8 | #include <linux/ftrace.h> |
9 | #include <linux/module.h> |
10 | #include <asm-generic/io.h> |
11 | |
12 | #define CREATE_TRACE_POINTS |
13 | #include <trace/events/rwmmio.h> |
14 | |
15 | #ifdef CONFIG_TRACE_MMIO_ACCESS |
16 | void log_write_mmio(u64 val, u8 width, volatile void __iomem *addr, |
17 | unsigned long caller_addr, unsigned long caller_addr0) |
18 | { |
19 | trace_rwmmio_write(caller_addr, caller_addr0, val, width, addr); |
20 | } |
21 | EXPORT_SYMBOL_GPL(log_write_mmio); |
22 | EXPORT_TRACEPOINT_SYMBOL_GPL(rwmmio_write); |
23 | |
24 | void log_post_write_mmio(u64 val, u8 width, volatile void __iomem *addr, |
25 | unsigned long caller_addr, unsigned long caller_addr0) |
26 | { |
27 | trace_rwmmio_post_write(caller_addr, caller_addr0, val, width, addr); |
28 | } |
29 | EXPORT_SYMBOL_GPL(log_post_write_mmio); |
30 | EXPORT_TRACEPOINT_SYMBOL_GPL(rwmmio_post_write); |
31 | |
32 | void log_read_mmio(u8 width, const volatile void __iomem *addr, |
33 | unsigned long caller_addr, unsigned long caller_addr0) |
34 | { |
35 | trace_rwmmio_read(caller_addr, caller_addr0, width, addr); |
36 | } |
37 | EXPORT_SYMBOL_GPL(log_read_mmio); |
38 | EXPORT_TRACEPOINT_SYMBOL_GPL(rwmmio_read); |
39 | |
40 | void log_post_read_mmio(u64 val, u8 width, const volatile void __iomem *addr, |
41 | unsigned long caller_addr, unsigned long caller_addr0) |
42 | { |
43 | trace_rwmmio_post_read(caller_addr, caller_addr0, val, width, addr); |
44 | } |
45 | EXPORT_SYMBOL_GPL(log_post_read_mmio); |
46 | EXPORT_TRACEPOINT_SYMBOL_GPL(rwmmio_post_read); |
47 | #endif /* CONFIG_TRACE_MMIO_ACCESS */ |
48 | |