diff options
| -rw-r--r-- | drivers/base/regmap/regmap-debugfs.c | 11 | 
1 files changed, 4 insertions, 7 deletions
| diff --git a/drivers/base/regmap/regmap-debugfs.c b/drivers/base/regmap/regmap-debugfs.c index 81d6f605c92e..886b2f7682c2 100644 --- a/drivers/base/regmap/regmap-debugfs.c +++ b/drivers/base/regmap/regmap-debugfs.c @@ -88,16 +88,15 @@ static unsigned int regmap_debugfs_get_dump_start(struct regmap *map,  	 * If we don't have a cache build one so we don't have to do a  	 * linear scan each time.  	 */ +	i = base;  	if (list_empty(&map->debugfs_off_cache)) { -		for (i = base; i <= map->max_register; i += map->reg_stride) { +		for (; i <= map->max_register; i += map->reg_stride) {  			/* Skip unprinted registers, closing off cache entry */  			if (!regmap_readable(map, i) ||  			    regmap_precious(map, i)) {  				if (c) {  					c->max = p - 1; -					fpos_offset = c->max - c->min; -					reg_offset = fpos_offset / map->debugfs_tot_len; -					c->max_reg = c->base_reg + reg_offset; +					c->max_reg = i - map->reg_stride;  					list_add_tail(&c->list,  						      &map->debugfs_off_cache);  					c = NULL; @@ -124,9 +123,7 @@ static unsigned int regmap_debugfs_get_dump_start(struct regmap *map,  	/* Close the last entry off if we didn't scan beyond it */  	if (c) {  		c->max = p - 1; -		fpos_offset = c->max - c->min; -		reg_offset = fpos_offset / map->debugfs_tot_len; -		c->max_reg = c->base_reg + reg_offset; +		c->max_reg = i - map->reg_stride;  		list_add_tail(&c->list,  			      &map->debugfs_off_cache);  	} |