regmap: Add the regcache_sync trace event

Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
Dimitris Papastamos 2011-09-19 14:34:04 +01:00 committed by Mark Brown
parent 2cbbb579bc
commit 5936008901
2 changed files with 31 additions and 1 deletions

View 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;
}

View 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 */