Commit ea7b4378 authored by Mark Brown's avatar Mark Brown

ASoC: Suppress noop SYSCLK updates in WM8915

Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: default avatarLiam Girdwood <lrg@ti.com>
parent 84abd1b3
...@@ -55,6 +55,7 @@ struct wm8915_priv { ...@@ -55,6 +55,7 @@ struct wm8915_priv {
int ldo1ena; int ldo1ena;
int sysclk; int sysclk;
int sysclk_src;
int fll_src; int fll_src;
int fll_fref; int fll_fref;
...@@ -1834,6 +1835,9 @@ static int wm8915_set_sysclk(struct snd_soc_dai *dai, ...@@ -1834,6 +1835,9 @@ static int wm8915_set_sysclk(struct snd_soc_dai *dai,
int src; int src;
int old; int old;
if (freq == wm8915->sysclk && clk_id == wm8915->sysclk_src)
return 0;
/* Disable SYSCLK while we reconfigure */ /* Disable SYSCLK while we reconfigure */
old = snd_soc_read(codec, WM8915_AIF_CLOCKING_1) & WM8915_SYSCLK_ENA; old = snd_soc_read(codec, WM8915_AIF_CLOCKING_1) & WM8915_SYSCLK_ENA;
snd_soc_update_bits(codec, WM8915_AIF_CLOCKING_1, snd_soc_update_bits(codec, WM8915_AIF_CLOCKING_1,
...@@ -1885,6 +1889,8 @@ static int wm8915_set_sysclk(struct snd_soc_dai *dai, ...@@ -1885,6 +1889,8 @@ static int wm8915_set_sysclk(struct snd_soc_dai *dai,
snd_soc_update_bits(codec, WM8915_AIF_CLOCKING_1, snd_soc_update_bits(codec, WM8915_AIF_CLOCKING_1,
WM8915_SYSCLK_ENA, old); WM8915_SYSCLK_ENA, old);
wm8915->sysclk_src = clk_id;
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment