summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2012-01-09 08:36:42 (GMT)
committerMark Brown <broonie@opensource.wolfsonmicro.com>2012-01-09 08:49:40 (GMT)
commit3befc925cb658227fb207f20e6719987f7ee3190 (patch)
tree138ffa4d3bfb273a76340e4a5398b3d1e405617e /drivers
parentb2ed1b0bc69e53d68aa01b79ca0944311b553fc1 (diff)
downloadlinux-fsl-qoriq-3befc925cb658227fb207f20e6719987f7ee3190.tar.xz
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')
-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 9b8d1ad..d3d9d53 100644
--- a/drivers/mfd/wm8994-core.c
+++ b/drivers/mfd/wm8994-core.c
@@ -268,6 +268,7 @@ static int wm8994_suspend(struct device *dev)
wm8994_reg_write(wm8994, WM8994_SOFTWARE_RESET,
wm8994_reg_read(wm8994, WM8994_SOFTWARE_RESET));
+ regcache_cache_only(wm8994->regmap, true);
regcache_mark_dirty(wm8994->regmap);
wm8994->suspended = true;
@@ -298,6 +299,7 @@ static int wm8994_resume(struct device *dev)
return ret;
}
+ regcache_cache_only(wm8994->regmap, false);
ret = regcache_sync(wm8994->regmap);
if (ret != 0) {
dev_err(dev, "Failed to restore register map: %d\n", ret);