mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 12:42:02 +00:00
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>
This commit is contained in:
parent
b2ed1b0bc6
commit
3befc925cb
@ -268,6 +268,7 @@ static int wm8994_suspend(struct device *dev)
|
|||||||
wm8994_reg_write(wm8994, WM8994_SOFTWARE_RESET,
|
wm8994_reg_write(wm8994, WM8994_SOFTWARE_RESET,
|
||||||
wm8994_reg_read(wm8994, WM8994_SOFTWARE_RESET));
|
wm8994_reg_read(wm8994, WM8994_SOFTWARE_RESET));
|
||||||
|
|
||||||
|
regcache_cache_only(wm8994->regmap, true);
|
||||||
regcache_mark_dirty(wm8994->regmap);
|
regcache_mark_dirty(wm8994->regmap);
|
||||||
|
|
||||||
wm8994->suspended = true;
|
wm8994->suspended = true;
|
||||||
@ -298,6 +299,7 @@ static int wm8994_resume(struct device *dev)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
regcache_cache_only(wm8994->regmap, false);
|
||||||
ret = regcache_sync(wm8994->regmap);
|
ret = regcache_sync(wm8994->regmap);
|
||||||
if (ret != 0) {
|
if (ret != 0) {
|
||||||
dev_err(dev, "Failed to restore register map: %d\n", ret);
|
dev_err(dev, "Failed to restore register map: %d\n", ret);
|
||||||
|
Loading…
Reference in New Issue
Block a user