aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXiubo Li <lixiubo@cmss.chinamobile.com>2015-12-10 22:23:19 -0500
committerMark Brown <broonie@kernel.org>2015-12-12 17:37:06 -0500
commit8cfe2fd3562ba673435bb2d7a4bb451aabd47809 (patch)
tree1d90a00102db38f9d94826f10a92c7637e771b8e
parent8005c49d9aea74d382f474ce11afbbc7d7130bec (diff)
regmap: cache: Add warning info for the cache check
If there is no cache used for the drivers, the register defaults or the register defaults raw are not need any more. This patch will check this and print a warning. Signed-off-by: Xiubo Li <lixiubo@cmss.chinamobile.com> Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--drivers/base/regmap/regcache.c12
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;