regmap: Fix regcache debugfs initialization
Commit6cfec04bcc
("regmap: Separate regmap dev initialization") moved the regmap debugfs initialization after regcache initialization. This means that the regmap debugfs directory is not created yet when the cache initialization runs and so any debugfs files registered by the regcache are created in the debugfs root directory rather than the debugfs directory of the regmap instance. Fix this by adding a separate callback for the regcache debugfs initialization which will be called after the parent debugfs entry has been created. Fixes:6cfec04bcc
(regmap: Separate regmap dev initialization) Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org> Cc: stable@vger.kernel.org
This commit is contained in:
Родитель
7d1311b93e
Коммит
5e0cbe7876
|
@ -146,6 +146,9 @@ struct regcache_ops {
|
|||
enum regcache_type type;
|
||||
int (*init)(struct regmap *map);
|
||||
int (*exit)(struct regmap *map);
|
||||
#ifdef CONFIG_DEBUG_FS
|
||||
void (*debugfs_init)(struct regmap *map);
|
||||
#endif
|
||||
int (*read)(struct regmap *map, unsigned int reg, unsigned int *value);
|
||||
int (*write)(struct regmap *map, unsigned int reg, unsigned int value);
|
||||
int (*sync)(struct regmap *map, unsigned int min, unsigned int max);
|
||||
|
|
|
@ -194,10 +194,6 @@ static void rbtree_debugfs_init(struct regmap *map)
|
|||
{
|
||||
debugfs_create_file("rbtree", 0400, map->debugfs, map, &rbtree_fops);
|
||||
}
|
||||
#else
|
||||
static void rbtree_debugfs_init(struct regmap *map)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
static int regcache_rbtree_init(struct regmap *map)
|
||||
|
@ -222,8 +218,6 @@ static int regcache_rbtree_init(struct regmap *map)
|
|||
goto err;
|
||||
}
|
||||
|
||||
rbtree_debugfs_init(map);
|
||||
|
||||
return 0;
|
||||
|
||||
err:
|
||||
|
@ -532,6 +526,9 @@ struct regcache_ops regcache_rbtree_ops = {
|
|||
.name = "rbtree",
|
||||
.init = regcache_rbtree_init,
|
||||
.exit = regcache_rbtree_exit,
|
||||
#ifdef CONFIG_DEBUG_FS
|
||||
.debugfs_init = rbtree_debugfs_init,
|
||||
#endif
|
||||
.read = regcache_rbtree_read,
|
||||
.write = regcache_rbtree_write,
|
||||
.sync = regcache_rbtree_sync,
|
||||
|
|
|
@ -538,6 +538,9 @@ void regmap_debugfs_init(struct regmap *map, const char *name)
|
|||
|
||||
next = rb_next(&range_node->node);
|
||||
}
|
||||
|
||||
if (map->cache_ops && map->cache_ops->debugfs_init)
|
||||
map->cache_ops->debugfs_init(map);
|
||||
}
|
||||
|
||||
void regmap_debugfs_exit(struct regmap *map)
|
||||
|
|
Загрузка…
Ссылка в новой задаче