diff options
-rw-r--r-- | drivers/base/regmap/regmap-debugfs.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/base/regmap/regmap-debugfs.c b/drivers/base/regmap/regmap-debugfs.c index 3fade1ceaf15..246f459e9170 100644 --- a/drivers/base/regmap/regmap-debugfs.c +++ b/drivers/base/regmap/regmap-debugfs.c | |||
@@ -139,15 +139,17 @@ static unsigned int regmap_debugfs_get_dump_start(struct regmap *map, | |||
139 | WARN_ON(list_empty(&map->debugfs_off_cache)); | 139 | WARN_ON(list_empty(&map->debugfs_off_cache)); |
140 | ret = base; | 140 | ret = base; |
141 | 141 | ||
142 | /* Find the relevant block */ | 142 | /* Find the relevant block:offset */ |
143 | list_for_each_entry(c, &map->debugfs_off_cache, list) { | 143 | list_for_each_entry(c, &map->debugfs_off_cache, list) { |
144 | if (from >= c->min && from <= c->max) { | 144 | if (from >= c->min && from <= c->max) { |
145 | *pos = c->min; | 145 | fpos_offset = from - c->min; |
146 | return c->base_reg; | 146 | reg_offset = fpos_offset / map->debugfs_tot_len; |
147 | *pos = c->min + (reg_offset * map->debugfs_tot_len); | ||
148 | return c->base_reg + reg_offset; | ||
147 | } | 149 | } |
148 | 150 | ||
149 | *pos = c->min; | 151 | *pos = c->max; |
150 | ret = c->base_reg; | 152 | ret = c->max_reg; |
151 | } | 153 | } |
152 | 154 | ||
153 | return ret; | 155 | return ret; |