From: Dimitris Papastamos Date: Thu, 29 Sep 2011 13:36:26 +0000 (+0100) Subject: regmap: Save/restore the bypass state upon syncing X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=beb1a10f219ce720c13168203bd5ebe4ce7879e0;p=linux-beck.git regmap: Save/restore the bypass state upon syncing Signed-off-by: Dimitris Papastamos Signed-off-by: Mark Brown --- diff --git a/drivers/base/regmap/regcache.c b/drivers/base/regmap/regcache.c index 59e432c0163d..5dbc5076267e 100644 --- a/drivers/base/regmap/regcache.c +++ b/drivers/base/regmap/regcache.c @@ -227,10 +227,13 @@ int regcache_sync(struct regmap *map) unsigned int val; unsigned int i; const char *name; + unsigned int bypass; BUG_ON(!map->cache_ops); mutex_lock(&map->lock); + /* Remember the initial bypass state */ + bypass = map->cache_bypass; dev_dbg(map->dev, "Syncing %s cache\n", map->cache_ops->name); name = map->cache_ops->name; @@ -255,6 +258,8 @@ int regcache_sync(struct regmap *map) } out: trace_regcache_sync(map->dev, name, "stop"); + /* Restore the bypass state */ + map->cache_bypass = bypass; mutex_unlock(&map->lock); return ret;