Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003  * Register read and write tracepoints
0004  *
0005  * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
0006  */
0007 
0008 #include <linux/ftrace.h>
0009 #include <linux/module.h>
0010 #include <asm-generic/io.h>
0011 
0012 #define CREATE_TRACE_POINTS
0013 #include <trace/events/rwmmio.h>
0014 
0015 #ifdef CONFIG_TRACE_MMIO_ACCESS
0016 void log_write_mmio(u64 val, u8 width, volatile void __iomem *addr,
0017             unsigned long caller_addr)
0018 {
0019     trace_rwmmio_write(caller_addr, val, width, addr);
0020 }
0021 EXPORT_SYMBOL_GPL(log_write_mmio);
0022 EXPORT_TRACEPOINT_SYMBOL_GPL(rwmmio_write);
0023 
0024 void log_post_write_mmio(u64 val, u8 width, volatile void __iomem *addr,
0025              unsigned long caller_addr)
0026 {
0027     trace_rwmmio_post_write(caller_addr, val, width, addr);
0028 }
0029 EXPORT_SYMBOL_GPL(log_post_write_mmio);
0030 EXPORT_TRACEPOINT_SYMBOL_GPL(rwmmio_post_write);
0031 
0032 void log_read_mmio(u8 width, const volatile void __iomem *addr,
0033            unsigned long caller_addr)
0034 {
0035     trace_rwmmio_read(caller_addr, width, addr);
0036 }
0037 EXPORT_SYMBOL_GPL(log_read_mmio);
0038 EXPORT_TRACEPOINT_SYMBOL_GPL(rwmmio_read);
0039 
0040 void log_post_read_mmio(u64 val, u8 width, const volatile void __iomem *addr,
0041             unsigned long caller_addr)
0042 {
0043     trace_rwmmio_post_read(caller_addr, val, width, addr);
0044 }
0045 EXPORT_SYMBOL_GPL(log_post_read_mmio);
0046 EXPORT_TRACEPOINT_SYMBOL_GPL(rwmmio_post_read);
0047 #endif /* CONFIG_TRACE_MMIO_ACCESS */