From c9dcc209244a11413b82c6525349b540174549f5 Mon Sep 17 00:00:00 2001 From: Laxman Dewangan Date: Fri, 17 Feb 2012 18:57:26 +0530 Subject: [PATCH] --- yaml --- r: 294181 b: refs/heads/master c: df00c79f78d8b0ad788daf689ea461ace9d0811f h: refs/heads/master i: 294179: 99c6552692cc4d027e6aaac7aac9d58e6141380c v: v3 --- [refs] | 2 +- trunk/drivers/base/regmap/regcache.c | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 954d71b377e9..6964097b1d31 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8eaeb21925563075ae036c2e5ba8d041b70e18fa +refs/heads/master: df00c79f78d8b0ad788daf689ea461ace9d0811f diff --git a/trunk/drivers/base/regmap/regcache.c b/trunk/drivers/base/regmap/regcache.c index 1ead66186b7c..4b903a8e92a2 100644 --- a/trunk/drivers/base/regmap/regcache.c +++ b/trunk/drivers/base/regmap/regcache.c @@ -35,12 +35,17 @@ static int regcache_hw_init(struct regmap *map) return -EINVAL; if (!map->reg_defaults_raw) { + u32 cache_bypass = map->cache_bypass; dev_warn(map->dev, "No cache defaults, reading back from HW\n"); + + /* Bypass the cache access till data read from HW*/ + map->cache_bypass = 1; tmp_buf = kmalloc(map->cache_size_raw, GFP_KERNEL); if (!tmp_buf) return -EINVAL; ret = regmap_bulk_read(map, 0, tmp_buf, map->num_reg_defaults_raw); + map->cache_bypass = cache_bypass; if (ret < 0) { kfree(tmp_buf); return ret;