
Pull <linux/device.h> avoidance patches from Paul Gortmaker: "Nearly every subsystem has some kind of header with a proto like: void foo(struct device *dev); and yet there is no reason for most of these guys to care about the sub fields within the device struct. This allows us to significantly reduce the scope of headers including headers. For this instance, a reduction of about 40% is achieved by replacing the include with the simple fact that the device is some kind of a struct. Unlike the much larger module.h cleanup, this one is simply two commits. One to fix the implicit <linux/device.h> users, and then one to delete the device.h includes from the linux/include/ dir wherever possible." * tag 'device-for-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: device.h: audit and cleanup users in main include dir device.h: cleanup users outside of linux/include (C files)
182 lines
3.3 KiB
C
182 lines
3.3 KiB
C
#undef TRACE_SYSTEM
|
|
#define TRACE_SYSTEM regmap
|
|
|
|
#if !defined(_TRACE_REGMAP_H) || defined(TRACE_HEADER_MULTI_READ)
|
|
#define _TRACE_REGMAP_H
|
|
|
|
#include <linux/ktime.h>
|
|
#include <linux/tracepoint.h>
|
|
|
|
struct device;
|
|
struct regmap;
|
|
|
|
/*
|
|
* Log register events
|
|
*/
|
|
DECLARE_EVENT_CLASS(regmap_reg,
|
|
|
|
TP_PROTO(struct device *dev, unsigned int reg,
|
|
unsigned int val),
|
|
|
|
TP_ARGS(dev, reg, val),
|
|
|
|
TP_STRUCT__entry(
|
|
__string( name, dev_name(dev) )
|
|
__field( unsigned int, reg )
|
|
__field( unsigned int, val )
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__assign_str(name, dev_name(dev));
|
|
__entry->reg = reg;
|
|
__entry->val = val;
|
|
),
|
|
|
|
TP_printk("%s reg=%x val=%x", __get_str(name),
|
|
(unsigned int)__entry->reg,
|
|
(unsigned int)__entry->val)
|
|
);
|
|
|
|
DEFINE_EVENT(regmap_reg, regmap_reg_write,
|
|
|
|
TP_PROTO(struct device *dev, unsigned int reg,
|
|
unsigned int val),
|
|
|
|
TP_ARGS(dev, reg, val)
|
|
|
|
);
|
|
|
|
DEFINE_EVENT(regmap_reg, regmap_reg_read,
|
|
|
|
TP_PROTO(struct device *dev, unsigned int reg,
|
|
unsigned int val),
|
|
|
|
TP_ARGS(dev, reg, val)
|
|
|
|
);
|
|
|
|
DEFINE_EVENT(regmap_reg, regmap_reg_read_cache,
|
|
|
|
TP_PROTO(struct device *dev, unsigned int reg,
|
|
unsigned int val),
|
|
|
|
TP_ARGS(dev, reg, val)
|
|
|
|
);
|
|
|
|
DECLARE_EVENT_CLASS(regmap_block,
|
|
|
|
TP_PROTO(struct device *dev, unsigned int reg, int count),
|
|
|
|
TP_ARGS(dev, reg, count),
|
|
|
|
TP_STRUCT__entry(
|
|
__string( name, dev_name(dev) )
|
|
__field( unsigned int, reg )
|
|
__field( int, count )
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__assign_str(name, dev_name(dev));
|
|
__entry->reg = reg;
|
|
__entry->count = count;
|
|
),
|
|
|
|
TP_printk("%s reg=%x count=%d", __get_str(name),
|
|
(unsigned int)__entry->reg,
|
|
(int)__entry->count)
|
|
);
|
|
|
|
DEFINE_EVENT(regmap_block, regmap_hw_read_start,
|
|
|
|
TP_PROTO(struct device *dev, unsigned int reg, int count),
|
|
|
|
TP_ARGS(dev, reg, count)
|
|
);
|
|
|
|
DEFINE_EVENT(regmap_block, regmap_hw_read_done,
|
|
|
|
TP_PROTO(struct device *dev, unsigned int reg, int count),
|
|
|
|
TP_ARGS(dev, reg, count)
|
|
);
|
|
|
|
DEFINE_EVENT(regmap_block, regmap_hw_write_start,
|
|
|
|
TP_PROTO(struct device *dev, unsigned int reg, int count),
|
|
|
|
TP_ARGS(dev, reg, count)
|
|
);
|
|
|
|
DEFINE_EVENT(regmap_block, regmap_hw_write_done,
|
|
|
|
TP_PROTO(struct device *dev, unsigned int reg, int count),
|
|
|
|
TP_ARGS(dev, reg, count)
|
|
);
|
|
|
|
TRACE_EVENT(regcache_sync,
|
|
|
|
TP_PROTO(struct device *dev, const char *type,
|
|
const char *status),
|
|
|
|
TP_ARGS(dev, type, status),
|
|
|
|
TP_STRUCT__entry(
|
|
__string( name, dev_name(dev) )
|
|
__string( status, status )
|
|
__string( type, type )
|
|
__field( int, type )
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__assign_str(name, dev_name(dev));
|
|
__assign_str(status, status);
|
|
__assign_str(type, type);
|
|
),
|
|
|
|
TP_printk("%s type=%s status=%s", __get_str(name),
|
|
__get_str(type), __get_str(status))
|
|
);
|
|
|
|
DECLARE_EVENT_CLASS(regmap_bool,
|
|
|
|
TP_PROTO(struct device *dev, bool flag),
|
|
|
|
TP_ARGS(dev, flag),
|
|
|
|
TP_STRUCT__entry(
|
|
__string( name, dev_name(dev) )
|
|
__field( int, flag )
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__assign_str(name, dev_name(dev));
|
|
__entry->flag = flag;
|
|
),
|
|
|
|
TP_printk("%s flag=%d", __get_str(name),
|
|
(int)__entry->flag)
|
|
);
|
|
|
|
DEFINE_EVENT(regmap_bool, regmap_cache_only,
|
|
|
|
TP_PROTO(struct device *dev, bool flag),
|
|
|
|
TP_ARGS(dev, flag)
|
|
|
|
);
|
|
|
|
DEFINE_EVENT(regmap_bool, regmap_cache_bypass,
|
|
|
|
TP_PROTO(struct device *dev, bool flag),
|
|
|
|
TP_ARGS(dev, flag)
|
|
|
|
);
|
|
|
|
#endif /* _TRACE_REGMAP_H */
|
|
|
|
/* This part must be outside protection */
|
|
#include <trace/define_trace.h>
|