diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-06-03 12:09:49 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-06-06 07:47:17 -0400 |
commit | ea7b4378364093678ff1724fa91c43913f97774b (patch) | |
tree | ea448d4c38d737b3c4d80c0501f95d44d14e5464 /sound | |
parent | 84abd1b395cf41269ffb5605a6ece3d6d7f8a3e1 (diff) |
ASoC: Suppress noop SYSCLK updates in WM8915
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/codecs/wm8915.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sound/soc/codecs/wm8915.c b/sound/soc/codecs/wm8915.c index b654fcd14897..eecd2c116122 100644 --- a/sound/soc/codecs/wm8915.c +++ b/sound/soc/codecs/wm8915.c | |||
@@ -55,6 +55,7 @@ struct wm8915_priv { | |||
55 | int ldo1ena; | 55 | int ldo1ena; |
56 | 56 | ||
57 | int sysclk; | 57 | int sysclk; |
58 | int sysclk_src; | ||
58 | 59 | ||
59 | int fll_src; | 60 | int fll_src; |
60 | int fll_fref; | 61 | int fll_fref; |
@@ -1834,6 +1835,9 @@ static int wm8915_set_sysclk(struct snd_soc_dai *dai, | |||
1834 | int src; | 1835 | int src; |
1835 | int old; | 1836 | int old; |
1836 | 1837 | ||
1838 | if (freq == wm8915->sysclk && clk_id == wm8915->sysclk_src) | ||
1839 | return 0; | ||
1840 | |||
1837 | /* Disable SYSCLK while we reconfigure */ | 1841 | /* Disable SYSCLK while we reconfigure */ |
1838 | old = snd_soc_read(codec, WM8915_AIF_CLOCKING_1) & WM8915_SYSCLK_ENA; | 1842 | old = snd_soc_read(codec, WM8915_AIF_CLOCKING_1) & WM8915_SYSCLK_ENA; |
1839 | snd_soc_update_bits(codec, WM8915_AIF_CLOCKING_1, | 1843 | snd_soc_update_bits(codec, WM8915_AIF_CLOCKING_1, |
@@ -1885,6 +1889,8 @@ static int wm8915_set_sysclk(struct snd_soc_dai *dai, | |||
1885 | snd_soc_update_bits(codec, WM8915_AIF_CLOCKING_1, | 1889 | snd_soc_update_bits(codec, WM8915_AIF_CLOCKING_1, |
1886 | WM8915_SYSCLK_ENA, old); | 1890 | WM8915_SYSCLK_ENA, old); |
1887 | 1891 | ||
1892 | wm8915->sysclk_src = clk_id; | ||
1893 | |||
1888 | return 0; | 1894 | return 0; |
1889 | } | 1895 | } |
1890 | 1896 | ||