diff options
author | Dimitris Papastamos <dp@opensource.wolfsonmicro.com> | 2013-02-20 07:15:22 -0500 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2013-03-03 21:33:02 -0500 |
commit | 480738de0e076d759a973be623fac195cb901b82 (patch) | |
tree | 345fc58ee2cfd1aeec8356ddfa042a57a7cb34d2 /drivers/base | |
parent | 6dbe51c251a327e012439c4772097a13df43c5b8 (diff) |
regmap: debugfs: Simplify calculation of `c->max_reg'
We don't need to use any of the file position information
to calculate the base and max register of each block. Just
use the counter directly.
Set `i = base' at the top to avoid GCC flow analysis bugs. The
value of `i' can never be undefined or 0 in the if (c) { ... }.
Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'drivers/base')
-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, | |||
88 | * If we don't have a cache build one so we don't have to do a | 88 | * If we don't have a cache build one so we don't have to do a |
89 | * linear scan each time. | 89 | * linear scan each time. |
90 | */ | 90 | */ |
91 | i = base; | ||
91 | if (list_empty(&map->debugfs_off_cache)) { | 92 | if (list_empty(&map->debugfs_off_cache)) { |
92 | for (i = base; i <= map->max_register; i += map->reg_stride) { | 93 | for (; i <= map->max_register; i += map->reg_stride) { |
93 | /* Skip unprinted registers, closing off cache entry */ | 94 | /* Skip unprinted registers, closing off cache entry */ |
94 | if (!regmap_readable(map, i) || | 95 | if (!regmap_readable(map, i) || |
95 | regmap_precious(map, i)) { | 96 | regmap_precious(map, i)) { |
96 | if (c) { | 97 | if (c) { |
97 | c->max = p - 1; | 98 | c->max = p - 1; |
98 | fpos_offset = c->max - c->min; | 99 | c->max_reg = i - map->reg_stride; |
99 | reg_offset = fpos_offset / map->debugfs_tot_len; | ||
100 | c->max_reg = c->base_reg + reg_offset; | ||
101 | list_add_tail(&c->list, | 100 | list_add_tail(&c->list, |
102 | &map->debugfs_off_cache); | 101 | &map->debugfs_off_cache); |
103 | c = NULL; | 102 | c = NULL; |
@@ -124,9 +123,7 @@ static unsigned int regmap_debugfs_get_dump_start(struct regmap *map, | |||
124 | /* Close the last entry off if we didn't scan beyond it */ | 123 | /* Close the last entry off if we didn't scan beyond it */ |
125 | if (c) { | 124 | if (c) { |
126 | c->max = p - 1; | 125 | c->max = p - 1; |
127 | fpos_offset = c->max - c->min; | 126 | c->max_reg = i - map->reg_stride; |
128 | reg_offset = fpos_offset / map->debugfs_tot_len; | ||
129 | c->max_reg = c->base_reg + reg_offset; | ||
130 | list_add_tail(&c->list, | 127 | list_add_tail(&c->list, |
131 | &map->debugfs_off_cache); | 128 | &map->debugfs_off_cache); |
132 | } | 129 | } |