diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-06-03 17:09:49 +0100 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-06-06 12:47:17 +0100 |
commit | ea7b4378364093678ff1724fa91c43913f97774b (patch) | |
tree | ea448d4c38d737b3c4d80c0501f95d44d14e5464 /sound/soc | |
parent | 84abd1b395cf41269ffb5605a6ece3d6d7f8a3e1 (diff) | |
download | linux-stable-ea7b4378364093678ff1724fa91c43913f97774b.tar.gz linux-stable-ea7b4378364093678ff1724fa91c43913f97774b.tar.bz2 linux-stable-ea7b4378364093678ff1724fa91c43913f97774b.zip |
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/soc')
-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 { int ldo1ena; int sysclk; + int sysclk_src; int fll_src; int fll_fref; @@ -1834,6 +1835,9 @@ static int wm8915_set_sysclk(struct snd_soc_dai *dai, int src; int old; + if (freq == wm8915->sysclk && clk_id == wm8915->sysclk_src) + return 0; + /* Disable SYSCLK while we reconfigure */ old = snd_soc_read(codec, WM8915_AIF_CLOCKING_1) & WM8915_SYSCLK_ENA; snd_soc_update_bits(codec, WM8915_AIF_CLOCKING_1, @@ -1885,6 +1889,8 @@ static int wm8915_set_sysclk(struct snd_soc_dai *dai, snd_soc_update_bits(codec, WM8915_AIF_CLOCKING_1, WM8915_SYSCLK_ENA, old); + wm8915->sysclk_src = clk_id; + return 0; } |