diff options
Diffstat (limited to 'drivers/base/regmap/regmap-debugfs.c')
| -rw-r--r-- | drivers/base/regmap/regmap-debugfs.c | 12 | 
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/base/regmap/regmap-debugfs.c b/drivers/base/regmap/regmap-debugfs.c index 45d812c0ea77..0c94b661c16f 100644 --- a/drivers/base/regmap/regmap-debugfs.c +++ b/drivers/base/regmap/regmap-debugfs.c @@ -512,7 +512,14 @@ void regmap_debugfs_init(struct regmap *map, const char *name)  			    map, ®map_reg_ranges_fops);  	if (map->max_register || regmap_readable(map, 0)) { -		debugfs_create_file("registers", 0400, map->debugfs, +		umode_t registers_mode; + +		if (IS_ENABLED(REGMAP_ALLOW_WRITE_DEBUGFS)) +			registers_mode = 0600; +		else +			registers_mode = 0400; + +		debugfs_create_file("registers", registers_mode, map->debugfs,  				    map, ®map_map_fops);  		debugfs_create_file("access", 0400, map->debugfs,  				    map, ®map_access_fops); @@ -538,6 +545,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)  |