Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
0004  */
0005 #undef TRACE_SYSTEM
0006 #define TRACE_SYSTEM rwmmio
0007 
0008 #if !defined(_TRACE_RWMMIO_H) || defined(TRACE_HEADER_MULTI_READ)
0009 #define _TRACE_RWMMIO_H
0010 
0011 #include <linux/tracepoint.h>
0012 
0013 DECLARE_EVENT_CLASS(rwmmio_rw_template,
0014 
0015     TP_PROTO(unsigned long caller, u64 val, u8 width, volatile void __iomem *addr),
0016 
0017     TP_ARGS(caller, val, width, addr),
0018 
0019     TP_STRUCT__entry(
0020         __field(unsigned long, caller)
0021         __field(unsigned long, addr)
0022         __field(u64, val)
0023         __field(u8, width)
0024     ),
0025 
0026     TP_fast_assign(
0027         __entry->caller = caller;
0028         __entry->val = val;
0029         __entry->addr = (unsigned long)addr;
0030         __entry->width = width;
0031     ),
0032 
0033     TP_printk("%pS width=%d val=%#llx addr=%#lx",
0034         (void *)__entry->caller, __entry->width,
0035         __entry->val, __entry->addr)
0036 );
0037 
0038 DEFINE_EVENT(rwmmio_rw_template, rwmmio_write,
0039     TP_PROTO(unsigned long caller, u64 val, u8 width, volatile void __iomem *addr),
0040     TP_ARGS(caller, val, width, addr)
0041 );
0042 
0043 DEFINE_EVENT(rwmmio_rw_template, rwmmio_post_write,
0044     TP_PROTO(unsigned long caller, u64 val, u8 width, volatile void __iomem *addr),
0045     TP_ARGS(caller, val, width, addr)
0046 );
0047 
0048 TRACE_EVENT(rwmmio_read,
0049 
0050     TP_PROTO(unsigned long caller, u8 width, const volatile void __iomem *addr),
0051 
0052     TP_ARGS(caller, width, addr),
0053 
0054     TP_STRUCT__entry(
0055         __field(unsigned long, caller)
0056         __field(unsigned long, addr)
0057         __field(u8, width)
0058     ),
0059 
0060     TP_fast_assign(
0061         __entry->caller = caller;
0062         __entry->addr = (unsigned long)addr;
0063         __entry->width = width;
0064     ),
0065 
0066     TP_printk("%pS width=%d addr=%#lx",
0067          (void *)__entry->caller, __entry->width, __entry->addr)
0068 );
0069 
0070 TRACE_EVENT(rwmmio_post_read,
0071 
0072     TP_PROTO(unsigned long caller, u64 val, u8 width, const volatile void __iomem *addr),
0073 
0074     TP_ARGS(caller, val, width, addr),
0075 
0076     TP_STRUCT__entry(
0077         __field(unsigned long, caller)
0078         __field(unsigned long, addr)
0079         __field(u64, val)
0080         __field(u8, width)
0081     ),
0082 
0083     TP_fast_assign(
0084         __entry->caller = caller;
0085         __entry->val = val;
0086         __entry->addr = (unsigned long)addr;
0087         __entry->width = width;
0088     ),
0089 
0090     TP_printk("%pS width=%d val=%#llx addr=%#lx",
0091          (void *)__entry->caller, __entry->width,
0092          __entry->val, __entry->addr)
0093 );
0094 
0095 #endif /* _TRACE_RWMMIO_H */
0096 
0097 #include <trace/define_trace.h>