aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Brown <broonie@linaro.org>2014-03-28 07:50:42 -0400
committerMark Brown <broonie@linaro.org>2014-03-28 07:50:42 -0400
commitb3bf36cb6a97fd3b00362cb38c09a7105fc5ad24 (patch)
treeaaae06a2145a9e0eacd07b45cb3f375214ebe228
parent6ce6d9c214c9752c7bcebba91ef2302176842870 (diff)
parent53e87f88b14c011692ab2cb8c8abc994bdd28ae9 (diff)
Merge remote-tracking branch 'regmap/topic/core' into regmap-next
-rw-r--r--drivers/base/regmap/regmap-debugfs.c2
-rw-r--r--drivers/base/regmap/regmap.c17
2 files changed, 11 insertions, 8 deletions
diff --git a/drivers/base/regmap/regmap-debugfs.c b/drivers/base/regmap/regmap-debugfs.c
index c5471cd6ebb7..45d812c0ea77 100644
--- a/drivers/base/regmap/regmap-debugfs.c
+++ b/drivers/base/regmap/regmap-debugfs.c
@@ -511,7 +511,7 @@ void regmap_debugfs_init(struct regmap *map, const char *name)
511 debugfs_create_file("range", 0400, map->debugfs, 511 debugfs_create_file("range", 0400, map->debugfs,
512 map, &regmap_reg_ranges_fops); 512 map, &regmap_reg_ranges_fops);
513 513
514 if (map->max_register) { 514 if (map->max_register || regmap_readable(map, 0)) {
515 debugfs_create_file("registers", 0400, map->debugfs, 515 debugfs_create_file("registers", 0400, map->debugfs,
516 map, &regmap_map_fops); 516 map, &regmap_map_fops);
517 debugfs_create_file("access", 0400, map->debugfs, 517 debugfs_create_file("access", 0400, map->debugfs,
diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c
index 6a19515f8a45..92d9b79ff93e 100644
--- a/drivers/base/regmap/regmap.c
+++ b/drivers/base/regmap/regmap.c
@@ -718,7 +718,7 @@ skip_format_initialization:
718 new->window_start = range_cfg->window_start; 718 new->window_start = range_cfg->window_start;
719 new->window_len = range_cfg->window_len; 719 new->window_len = range_cfg->window_len;
720 720
721 if (_regmap_range_add(map, new) == false) { 721 if (!_regmap_range_add(map, new)) {
722 dev_err(map->dev, "Failed to add range %d\n", i); 722 dev_err(map->dev, "Failed to add range %d\n", i);
723 kfree(new); 723 kfree(new);
724 goto err_range; 724 goto err_range;
@@ -1736,6 +1736,9 @@ static int _regmap_read(struct regmap *map, unsigned int reg,
1736 if (map->cache_only) 1736 if (map->cache_only)
1737 return -EBUSY; 1737 return -EBUSY;
1738 1738
1739 if (!regmap_readable(map, reg))
1740 return -EIO;
1741
1739 ret = map->reg_read(context, reg, val); 1742 ret = map->reg_read(context, reg, val);
1740 if (ret == 0) { 1743 if (ret == 0) {
1741#ifdef LOG_DEVICE 1744#ifdef LOG_DEVICE
@@ -1966,9 +1969,11 @@ static int _regmap_update_bits(struct regmap *map, unsigned int reg,
1966 1969
1967 if (tmp != orig) { 1970 if (tmp != orig) {
1968 ret = _regmap_write(map, reg, tmp); 1971 ret = _regmap_write(map, reg, tmp);
1969 *change = true; 1972 if (change)
1973 *change = true;
1970 } else { 1974 } else {
1971 *change = false; 1975 if (change)
1976 *change = false;
1972 } 1977 }
1973 1978
1974 return ret; 1979 return ret;
@@ -1987,11 +1992,10 @@ static int _regmap_update_bits(struct regmap *map, unsigned int reg,
1987int regmap_update_bits(struct regmap *map, unsigned int reg, 1992int regmap_update_bits(struct regmap *map, unsigned int reg,
1988 unsigned int mask, unsigned int val) 1993 unsigned int mask, unsigned int val)
1989{ 1994{
1990 bool change;
1991 int ret; 1995 int ret;
1992 1996
1993 map->lock(map->lock_arg); 1997 map->lock(map->lock_arg);
1994 ret = _regmap_update_bits(map, reg, mask, val, &change); 1998 ret = _regmap_update_bits(map, reg, mask, val, NULL);
1995 map->unlock(map->lock_arg); 1999 map->unlock(map->lock_arg);
1996 2000
1997 return ret; 2001 return ret;
@@ -2016,14 +2020,13 @@ EXPORT_SYMBOL_GPL(regmap_update_bits);
2016int regmap_update_bits_async(struct regmap *map, unsigned int reg, 2020int regmap_update_bits_async(struct regmap *map, unsigned int reg,
2017 unsigned int mask, unsigned int val) 2021 unsigned int mask, unsigned int val)
2018{ 2022{
2019 bool change;
2020 int ret; 2023 int ret;
2021 2024
2022 map->lock(map->lock_arg); 2025 map->lock(map->lock_arg);
2023 2026
2024 map->async = true; 2027 map->async = true;
2025 2028
2026 ret = _regmap_update_bits(map, reg, mask, val, &change); 2029 ret = _regmap_update_bits(map, reg, mask, val, NULL);
2027 2030
2028 map->async = false; 2031 map->async = false;
2029 2032