summaryrefslogtreecommitdiffstats
path: root/sound/soc
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2012-09-27 19:35:24 +0200
committerMark Brown <broonie@opensource.wolfsonmicro.com>2012-09-28 13:06:31 +0200
commiteb4d5fc1f0ce89e3d5b072c594a1e213a0e05881 (patch)
tree823034a9ed5c6c14b2e107624f004c4bd38b5fbe /sound/soc
parentASoC: wm5110: Adding missing volume update bits (diff)
downloadlinux-eb4d5fc1f0ce89e3d5b072c594a1e213a0e05881.tar.xz
linux-eb4d5fc1f0ce89e3d5b072c594a1e213a0e05881.zip
ASoC: wm_hubs: Ensure volume updates are handled during class W startup
In some circumstances we may need to flush volume updates to the device after switching to class W mode. Do this unconditionally to ensure that these situations are handled. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@vger.kernel.org
Diffstat (limited to 'sound/soc')
-rw-r--r--sound/soc/codecs/wm_hubs.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sound/soc/codecs/wm_hubs.c b/sound/soc/codecs/wm_hubs.c
index 7a773a835b8e..867ae97ddcec 100644
--- a/sound/soc/codecs/wm_hubs.c
+++ b/sound/soc/codecs/wm_hubs.c
@@ -681,6 +681,11 @@ void wm_hubs_update_class_w(struct snd_soc_codec *codec)
snd_soc_update_bits(codec, WM8993_CLASS_W_0,
WM8993_CP_DYN_V | WM8993_CP_DYN_FREQ, enable);
+
+ snd_soc_write(codec, WM8993_LEFT_OUTPUT_VOLUME,
+ snd_soc_read(codec, WM8993_LEFT_OUTPUT_VOLUME));
+ snd_soc_write(codec, WM8993_RIGHT_OUTPUT_VOLUME,
+ snd_soc_read(codec, WM8993_RIGHT_OUTPUT_VOLUME));
}
EXPORT_SYMBOL_GPL(wm_hubs_update_class_w);