]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - releases/2.6.36.4/asoc-when-disabling-wm8994-fll-force-a-source-selection.patch
5.1-stable patches
[thirdparty/kernel/stable-queue.git] / releases / 2.6.36.4 / asoc-when-disabling-wm8994-fll-force-a-source-selection.patch
1 From 4514e8997fbefd5befd6176ac9785e287b4daed4 Mon Sep 17 00:00:00 2001
2 From: Mark Brown <broonie@opensource.wolfsonmicro.com>
3 Date: Fri, 3 Dec 2010 16:02:10 +0000
4 Subject: ASoC: When disabling WM8994 FLL force a source selection
5
6 From: Mark Brown <broonie@opensource.wolfsonmicro.com>
7
8 commit 4514e8997fbefd5befd6176ac9785e287b4daed4 upstream.
9
10 When we disable the WM8994 FLL code path sharing means that we end up
11 writing out a configuration. Currently this is the currently active
12 input and output frequency (which causes snd_soc_update_bits() to
13 suppress actual writes both immediately and in the common case where
14 we reenable the same configuration later) but we allow machine drivers
15 to pass through a source of zero. Since the register values written
16 are one less than the source constants this causes corruption of other
17 bitfields in the register.
18
19 Fix this by using the most recently configured FLL source when none is
20 provided.
21
22 Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
23 Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
24 Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
25
26 ---
27 sound/soc/codecs/wm8994.c | 1 +
28 1 file changed, 1 insertion(+)
29
30 --- a/sound/soc/codecs/wm8994.c
31 +++ b/sound/soc/codecs/wm8994.c
32 @@ -2914,6 +2914,7 @@ static int wm8994_set_fll(struct snd_soc
33 /* Allow no source specification when stopping */
34 if (freq_out)
35 return -EINVAL;
36 + src = wm8994->fll[id].src;
37 break;
38 case WM8994_FLL_SRC_MCLK1:
39 case WM8994_FLL_SRC_MCLK2: