regmap: Make regmap_check_range_table() a public API
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 8 May 2013 12:55:23 +0000 (13:55 +0100)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Sun, 12 May 2013 14:46:47 +0000 (18:46 +0400)
Allow drivers to use an access table as part of their implementation.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
drivers/base/regmap/regmap.c
include/linux/regmap.h

index a941dcf..307f5a1 100644 (file)
@@ -65,9 +65,8 @@ bool regmap_reg_in_ranges(unsigned int reg,
 }
 EXPORT_SYMBOL_GPL(regmap_reg_in_ranges);
 
-static bool _regmap_check_range_table(struct regmap *map,
-                                     unsigned int reg,
-                                     const struct regmap_access_table *table)
+bool regmap_check_range_table(struct regmap *map, unsigned int reg,
+                             const struct regmap_access_table *table)
 {
        /* Check "no ranges" first */
        if (regmap_reg_in_ranges(reg, table->no_ranges, table->n_no_ranges))
@@ -80,6 +79,7 @@ static bool _regmap_check_range_table(struct regmap *map,
        return regmap_reg_in_ranges(reg, table->yes_ranges,
                                    table->n_yes_ranges);
 }
+EXPORT_SYMBOL_GPL(regmap_check_range_table);
 
 bool regmap_writeable(struct regmap *map, unsigned int reg)
 {
@@ -90,7 +90,7 @@ bool regmap_writeable(struct regmap *map, unsigned int reg)
                return map->writeable_reg(map->dev, reg);
 
        if (map->wr_table)
-               return _regmap_check_range_table(map, reg, map->wr_table);
+               return regmap_check_range_table(map, reg, map->wr_table);
 
        return true;
 }
@@ -107,7 +107,7 @@ bool regmap_readable(struct regmap *map, unsigned int reg)
                return map->readable_reg(map->dev, reg);
 
        if (map->rd_table)
-               return _regmap_check_range_table(map, reg, map->rd_table);
+               return regmap_check_range_table(map, reg, map->rd_table);
 
        return true;
 }
@@ -121,7 +121,7 @@ bool regmap_volatile(struct regmap *map, unsigned int reg)
                return map->volatile_reg(map->dev, reg);
 
        if (map->volatile_table)
-               return _regmap_check_range_table(map, reg, map->volatile_table);
+               return regmap_check_range_table(map, reg, map->volatile_table);
 
        return true;
 }
@@ -135,7 +135,7 @@ bool regmap_precious(struct regmap *map, unsigned int reg)
                return map->precious_reg(map->dev, reg);
 
        if (map->precious_table)
-               return _regmap_check_range_table(map, reg, map->precious_table);
+               return regmap_check_range_table(map, reg, map->precious_table);
 
        return false;
 }
index 5067ee9..d6f3221 100644 (file)
@@ -400,6 +400,9 @@ void regcache_cache_only(struct regmap *map, bool enable);
 void regcache_cache_bypass(struct regmap *map, bool enable);
 void regcache_mark_dirty(struct regmap *map);
 
+bool regmap_check_range_table(struct regmap *map, unsigned int reg,
+                             const struct regmap_access_table *table);
+
 int regmap_register_patch(struct regmap *map, const struct reg_default *regs,
                          int num_regs);