aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2011-06-03 12:09:49 -0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2011-06-06 07:47:17 -0400
commitea7b4378364093678ff1724fa91c43913f97774b (patch)
treeea448d4c38d737b3c4d80c0501f95d44d14e5464 /sound
parent84abd1b395cf41269ffb5605a6ece3d6d7f8a3e1 (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.c6
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