From 8d9cbb00643f26654656e737f52dc3ab645dc348 Mon Sep 17 00:00:00 2001 From: Mark Brown Date: Thu, 23 Feb 2012 20:11:58 +0000 Subject: [PATCH] --- yaml --- r: 294149 b: refs/heads/master c: a3c3774176838bbfa4f6e48133644903818e56dc h: refs/heads/master i: 294147: f0c51dab10459f417e651b9e87a65a6d764e067b v: v3 --- [refs] | 2 +- trunk/drivers/base/regmap/regcache-lzo.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 1bede80ec189..9d654413fb88 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f0c2319f9f196726ebe4d7508fd8fbd804988db3 +refs/heads/master: a3c3774176838bbfa4f6e48133644903818e56dc diff --git a/trunk/drivers/base/regmap/regcache-lzo.c b/trunk/drivers/base/regmap/regcache-lzo.c index b7d16143edeb..3025cf920f25 100644 --- a/trunk/drivers/base/regmap/regcache-lzo.c +++ b/trunk/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;