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>
This commit is contained in:
parent
6dbe51c251
commit
480738de0e
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue