diff options
Diffstat (limited to 'drivers/base/regmap/regcache.c')
| -rw-r--r-- | drivers/base/regmap/regcache.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/base/regmap/regcache.c b/drivers/base/regmap/regcache.c index 4c07802986b2..9436a0d4cf71 100644 --- a/drivers/base/regmap/regcache.c +++ b/drivers/base/regmap/regcache.c | |||
| @@ -100,15 +100,19 @@ int regcache_init(struct regmap *map, const struct regmap_config *config) | |||
| 100 | int i; | 100 | int i; |
| 101 | void *tmp_buf; | 101 | void *tmp_buf; |
| 102 | 102 | ||
| 103 | for (i = 0; i < config->num_reg_defaults; i++) | ||
| 104 | if (config->reg_defaults[i].reg % map->reg_stride) | ||
| 105 | return -EINVAL; | ||
| 106 | |||
| 107 | if (map->cache_type == REGCACHE_NONE) { | 103 | if (map->cache_type == REGCACHE_NONE) { |
| 104 | if (config->reg_defaults || config->num_reg_defaults_raw) | ||
| 105 | dev_warn(map->dev, | ||
| 106 | "No cache used with register defaults set!\n"); | ||
| 107 | |||
| 108 | map->cache_bypass = true; | 108 | map->cache_bypass = true; |
| 109 | return 0; | 109 | return 0; |
| 110 | } | 110 | } |
| 111 | 111 | ||
| 112 | for (i = 0; i < config->num_reg_defaults; i++) | ||
| 113 | if (config->reg_defaults[i].reg % map->reg_stride) | ||
| 114 | return -EINVAL; | ||
| 115 | |||
| 112 | for (i = 0; i < ARRAY_SIZE(cache_types); i++) | 116 | for (i = 0; i < ARRAY_SIZE(cache_types); i++) |
| 113 | if (cache_types[i]->type == map->cache_type) | 117 | if (cache_types[i]->type == map->cache_type) |
| 114 | break; | 118 | break; |
