[alsa-devel] [PATCH] ASoC: Clear completions from late WM8996 FLL lock IRQs

Mark Brown broonie at opensource.wolfsonmicro.com
Tue Aug 16 09:59:10 CEST 2011

In case we have a pending completion, for example due to a problem with
the input clock which got corrected after we timed out.

Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
 sound/soc/codecs/wm8996.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/sound/soc/codecs/wm8996.c b/sound/soc/codecs/wm8996.c
index ab8e9d1..a44a0e5 100644
--- a/sound/soc/codecs/wm8996.c
+++ b/sound/soc/codecs/wm8996.c
@@ -2106,6 +2106,9 @@ static int wm8996_set_fll(struct snd_soc_codec *codec, int fll_id, int source,
 	snd_soc_write(codec, WM8996_FLL_EFS_1, fll_div.lambda);
+	/* Clear any pending completions (eg, from failed startups) */
+	try_wait_for_completion(&wm8996->fll_lock);
 	snd_soc_update_bits(codec, WM8996_FLL_CONTROL_1,
 			    WM8996_FLL_ENA, WM8996_FLL_ENA);

More information about the Alsa-devel mailing list