From: Mark Brown Date: Thu, 23 Feb 2012 20:11:58 +0000 (+0000) Subject: regmap: Skip hardware defaults for LZO caches X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=a3c3774176838bbfa4f6e48133644903818e56dc;p=linux-beck.git regmap: Skip hardware defaults for LZO caches Saves some I/O when resyncing; we assume that syncs start from the device reset state. Signed-off-by: Mark Brown --- diff --git a/drivers/base/regmap/regcache-lzo.c b/drivers/base/regmap/regcache-lzo.c index b7d16143edeb..3025cf920f25 100644 --- a/drivers/base/regmap/regcache-lzo.c +++ b/drivers/base/regmap/regcache-lzo.c @@ -343,6 +343,12 @@ static int regcache_lzo_sync(struct regmap *map) ret = regcache_read(map, i, &val); if (ret) return ret; + + /* Is this the hardware default? If so skip. */ + ret = regcache_lookup_reg(map, i); + if (ret > 0 && val == map->reg_defaults[ret].def) + continue; + map->cache_bypass = 1; ret = _regmap_write(map, i, val); map->cache_bypass = 0;