From 593600890110c02eb471cf844649dee213870416 Mon Sep 17 00:00:00 2001 From: Dimitris Papastamos Date: Mon, 19 Sep 2011 14:34:04 +0100 Subject: regmap: Add the regcache_sync trace event Signed-off-by: Dimitris Papastamos Signed-off-by: Mark Brown --- drivers/base/regmap/regcache.c | 8 +++++++- include/trace/events/regmap.h | 24 ++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/drivers/base/regmap/regcache.c b/drivers/base/regmap/regcache.c index 142d9cdfef3a..00609bf785fb 100644 --- a/drivers/base/regmap/regcache.c +++ b/drivers/base/regmap/regcache.c @@ -221,12 +221,18 @@ EXPORT_SYMBOL_GPL(regcache_write); */ int regcache_sync(struct regmap *map) { + int ret; + const char *name; + BUG_ON(!map->cache_ops); if (map->cache_ops->sync) { dev_dbg(map->dev, "Syncing %s cache\n", map->cache_ops->name); - return map->cache_ops->sync(map); + name = map->cache_ops->name; + trace_regcache_sync(map->dev, name, "start"); + ret = map->cache_ops->sync(map); + trace_regcache_sync(map->dev, name, "stop"); } return 0; } diff --git a/include/trace/events/regmap.h b/include/trace/events/regmap.h index e35e37c378c6..1e3193b8fcc8 100644 --- a/include/trace/events/regmap.h +++ b/include/trace/events/regmap.h @@ -106,6 +106,30 @@ DEFINE_EVENT(regmap_block, regmap_hw_write_done, 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)) +); + #endif /* _TRACE_REGMAP_H */ /* This part must be outside protection */ -- cgit v1.2.3