Browse Source

ASoC: Don't restart an already running WM8958 DSP2

Don't want to upset the DSP.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Cc: stable@kernel.org
Mark Brown 14 years ago
parent
commit
fa63e477dd
1 changed files with 4 additions and 0 deletions
  1. 4 0
      sound/soc/codecs/wm8958-dsp2.c

+ 4 - 0
sound/soc/codecs/wm8958-dsp2.c

@@ -362,6 +362,10 @@ static void wm8958_dsp_apply(struct snd_soc_codec *codec, int path, int start)
 		path, wm8994->dsp_active, start, pwr_reg, reg);
 
 	if (start && ena) {
+		/* If the DSP is already running then noop */
+		if (reg & WM8958_DSP2_ENA)
+			return;
+
 		/* If either AIFnCLK is not yet enabled postpone */
 		if (!(snd_soc_read(codec, WM8994_AIF1_CLOCKING_1)
 		      & WM8994_AIF1CLK_ENA_MASK) &&