Merge remote-tracking branch 'regmap/topic/cache' into regmap-next
This commit is contained in:
commit
6cca67129d
|
@ -100,15 +100,25 @@ int regcache_init(struct regmap *map, const struct regmap_config *config)
|
||||||
int i;
|
int i;
|
||||||
void *tmp_buf;
|
void *tmp_buf;
|
||||||
|
|
||||||
for (i = 0; i < config->num_reg_defaults; i++)
|
|
||||||
if (config->reg_defaults[i].reg % map->reg_stride)
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
if (map->cache_type == REGCACHE_NONE) {
|
if (map->cache_type == REGCACHE_NONE) {
|
||||||
|
if (config->reg_defaults || config->num_reg_defaults_raw)
|
||||||
|
dev_warn(map->dev,
|
||||||
|
"No cache used with register defaults set!\n");
|
||||||
|
|
||||||
map->cache_bypass = true;
|
map->cache_bypass = true;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (config->reg_defaults && !config->num_reg_defaults) {
|
||||||
|
dev_err(map->dev,
|
||||||
|
"Register defaults are set without the number!\n");
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < config->num_reg_defaults; i++)
|
||||||
|
if (config->reg_defaults[i].reg % map->reg_stride)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(cache_types); i++)
|
for (i = 0; i < ARRAY_SIZE(cache_types); i++)
|
||||||
if (cache_types[i]->type == map->cache_type)
|
if (cache_types[i]->type == map->cache_type)
|
||||||
break;
|
break;
|
||||||
|
@ -138,8 +148,6 @@ int regcache_init(struct regmap *map, const struct regmap_config *config)
|
||||||
* a copy of it.
|
* a copy of it.
|
||||||
*/
|
*/
|
||||||
if (config->reg_defaults) {
|
if (config->reg_defaults) {
|
||||||
if (!map->num_reg_defaults)
|
|
||||||
return -EINVAL;
|
|
||||||
tmp_buf = kmemdup(config->reg_defaults, map->num_reg_defaults *
|
tmp_buf = kmemdup(config->reg_defaults, map->num_reg_defaults *
|
||||||
sizeof(struct reg_default), GFP_KERNEL);
|
sizeof(struct reg_default), GFP_KERNEL);
|
||||||
if (!tmp_buf)
|
if (!tmp_buf)
|
||||||
|
|
Loading…
Reference in a new issue