regmap: debugfs: Add a `max_reg' member in struct regmap_debugfs_off_cache
authorDimitris Papastamos <dp@opensource.wolfsonmicro.com>
Fri, 8 Feb 2013 12:47:14 +0000 (12:47 +0000)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Mon, 11 Feb 2013 11:25:32 +0000 (11:25 +0000)
We are keeping track of the maximum register as well, this will make
things easier for us in sharing this code with the code implementing
the register ranges functionality.  It also simplifies a bit the
calculations when looking for the relevant block:offset from within
the cache.

Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
drivers/base/regmap/internal.h
drivers/base/regmap/regmap-debugfs.c

index 401d1919635a5fcdf9bac6b84d99ffdc485d0e14..26b8ffde14582d88a664005495d957e6f1516db0 100644 (file)
@@ -25,6 +25,7 @@ struct regmap_debugfs_off_cache {
        off_t min;
        off_t max;
        unsigned int base_reg;
+       unsigned int max_reg;
 };
 
 struct regmap_format {
index 0e94fd3c95a337b9cf13a9c4b454496111dd5f76..3fade1ceaf151ccc16dc3116e0bda74047246f75 100644 (file)
@@ -81,6 +81,8 @@ static unsigned int regmap_debugfs_get_dump_start(struct regmap *map,
        struct regmap_debugfs_off_cache *c = NULL;
        loff_t p = 0;
        unsigned int i, ret;
+       unsigned int fpos_offset;
+       unsigned int reg_offset;
 
        /*
         * If we don't have a cache build one so we don't have to do a
@@ -93,6 +95,9 @@ static unsigned int regmap_debugfs_get_dump_start(struct regmap *map,
                            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;
                                        list_add_tail(&c->list,
                                                      &map->debugfs_off_cache);
                                        c = NULL;
@@ -119,6 +124,9 @@ 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;
                list_add_tail(&c->list,
                              &map->debugfs_off_cache);
        }