aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/base/regmap/regmap-debugfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/base/regmap/regmap-debugfs.c')
-rw-r--r--drivers/base/regmap/regmap-debugfs.c12
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;