aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd/wm8994-core.c
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2012-01-09 03:36:42 -0500
committerMark Brown <broonie@opensource.wolfsonmicro.com>2012-01-09 03:49:40 -0500
commit3befc925cb658227fb207f20e6719987f7ee3190 (patch)
tree138ffa4d3bfb273a76340e4a5398b3d1e405617e /drivers/mfd/wm8994-core.c
parentb2ed1b0bc69e53d68aa01b79ca0944311b553fc1 (diff)
mfd: Put WM8994 into cache only mode when suspending
This is required by the ASoC driver for very low power modes where the device is fully idle but we want to update controls. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'drivers/mfd/wm8994-core.c')
-rw-r--r--drivers/mfd/wm8994-core.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/mfd/wm8994-core.c b/drivers/mfd/wm8994-core.c
index 9b8d1ad28ee1..d3d9d53ca9e3 100644
--- a/drivers/mfd/wm8994-core.c
+++ b/drivers/mfd/wm8994-core.c
@@ -268,6 +268,7 @@ static int wm8994_suspend(struct device *dev)
268 wm8994_reg_write(wm8994, WM8994_SOFTWARE_RESET, 268 wm8994_reg_write(wm8994, WM8994_SOFTWARE_RESET,
269 wm8994_reg_read(wm8994, WM8994_SOFTWARE_RESET)); 269 wm8994_reg_read(wm8994, WM8994_SOFTWARE_RESET));
270 270
271 regcache_cache_only(wm8994->regmap, true);
271 regcache_mark_dirty(wm8994->regmap); 272 regcache_mark_dirty(wm8994->regmap);
272 273
273 wm8994->suspended = true; 274 wm8994->suspended = true;
@@ -298,6 +299,7 @@ static int wm8994_resume(struct device *dev)
298 return ret; 299 return ret;
299 } 300 }
300 301
302 regcache_cache_only(wm8994->regmap, false);
301 ret = regcache_sync(wm8994->regmap); 303 ret = regcache_sync(wm8994->regmap);
302 if (ret != 0) { 304 if (ret != 0) {
303 dev_err(dev, "Failed to restore register map: %d\n", ret); 305 dev_err(dev, "Failed to restore register map: %d\n", ret);