regmap: cache: Add warning info for the cache check
authorXiubo Li <lixiubo@cmss.chinamobile.com>
Fri, 11 Dec 2015 03:23:19 +0000 (11:23 +0800)
committerMark Brown <broonie@kernel.org>
Sat, 12 Dec 2015 22:37:06 +0000 (22:37 +0000)
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>
drivers/base/regmap/regcache.c

index 4c07802986b2c92862e1f0242eebddcb42e2b45d..9436a0d4cf71e49585b0f90b8d485c2be0564353 100644 (file)
@@ -100,15 +100,19 @@ int regcache_init(struct regmap *map, const struct regmap_config *config)
        int i;
        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 (config->reg_defaults || config->num_reg_defaults_raw)
+                       dev_warn(map->dev,
+                                "No cache used with register defaults set!\n");
+
                map->cache_bypass = true;
                return 0;
        }
 
+       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++)
                if (cache_types[i]->type == map->cache_type)
                        break;