diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/base/regmap/regcache.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/base/regmap/regcache.c b/drivers/base/regmap/regcache.c index 1ca2d7a1051f..1ead66186b7c 100644 --- a/drivers/base/regmap/regcache.c +++ b/drivers/base/regmap/regcache.c | |||
| @@ -193,13 +193,21 @@ void regcache_exit(struct regmap *map) | |||
| 193 | int regcache_read(struct regmap *map, | 193 | int regcache_read(struct regmap *map, |
| 194 | unsigned int reg, unsigned int *value) | 194 | unsigned int reg, unsigned int *value) |
| 195 | { | 195 | { |
| 196 | int ret; | ||
| 197 | |||
| 196 | if (map->cache_type == REGCACHE_NONE) | 198 | if (map->cache_type == REGCACHE_NONE) |
| 197 | return -ENOSYS; | 199 | return -ENOSYS; |
| 198 | 200 | ||
| 199 | BUG_ON(!map->cache_ops); | 201 | BUG_ON(!map->cache_ops); |
| 200 | 202 | ||
| 201 | if (!regmap_volatile(map, reg)) | 203 | if (!regmap_volatile(map, reg)) { |
| 202 | return map->cache_ops->read(map, reg, value); | 204 | ret = map->cache_ops->read(map, reg, value); |
| 205 | |||
| 206 | if (ret == 0) | ||
| 207 | trace_regmap_reg_read_cache(map->dev, reg, *value); | ||
| 208 | |||
| 209 | return ret; | ||
| 210 | } | ||
| 203 | 211 | ||
| 204 | return -EINVAL; | 212 | return -EINVAL; |
| 205 | } | 213 | } |
