regmap: Add the regcache_sync trace event
authorDimitris Papastamos <dp@opensource.wolfsonmicro.com>
Mon, 19 Sep 2011 13:34:04 +0000 (14:34 +0100)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Mon, 19 Sep 2011 18:06:34 +0000 (19:06 +0100)
Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

drivers/base/regmap/regcache.c
include/trace/events/regmap.h

index 142d9cd..00609bf 100644 (file)
@@ -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;
 }
index e35e37c..1e3193b 100644 (file)
@@ -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 */