[PATCH 5/6 v5] regmap: Add the regcache_sync trace event

Dimitris Papastamos
2011-09-19T13:34:22Z

Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
---
drivers/base/regmap/regcache.c | 8 +++++++-
include/trace/events/regmap.h | 24 ++++++++++++++++++++++++
2 files changed, 31 insertions(+), 1 deletions(-)

diff --git a/drivers/base/regmap/regcache.c b/drivers/base/regmap/regcache.c
index 1e4849b..c438498 100644
--- a/drivers/base/regmap/regcache.c
+++ b/drivers/base/regmap/regcache.c
@@ -219,12 +219,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 e35e37c..1e3193b 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 */
--
1.7.6.1