diff options
author | Mark Brown <broonie@linaro.org> | 2014-03-28 07:50:42 -0400 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2014-03-28 07:50:42 -0400 |
commit | b3bf36cb6a97fd3b00362cb38c09a7105fc5ad24 (patch) | |
tree | aaae06a2145a9e0eacd07b45cb3f375214ebe228 | |
parent | 6ce6d9c214c9752c7bcebba91ef2302176842870 (diff) | |
parent | 53e87f88b14c011692ab2cb8c8abc994bdd28ae9 (diff) |
Merge remote-tracking branch 'regmap/topic/core' into regmap-next
-rw-r--r-- | drivers/base/regmap/regmap-debugfs.c | 2 | ||||
-rw-r--r-- | drivers/base/regmap/regmap.c | 17 |
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, ®map_reg_ranges_fops); | 512 | map, ®map_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, ®map_map_fops); | 516 | map, ®map_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, | |||
1987 | int regmap_update_bits(struct regmap *map, unsigned int reg, | 1992 | int 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); | |||
2016 | int regmap_update_bits_async(struct regmap *map, unsigned int reg, | 2020 | int 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 | ||