ASoC: Fix disable of SPDIF on STAC9766 codec

Change code so that switching to playing music through the analog output
disables SPDIF out instead of disabling it when stream ends.

Signed-off-by: Jon Smirl <jonsmirl@gmail.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

authored by

Jon Smirl and committed by
Mark Brown
75b46c13 1cf86f6f

+1 -17
+1 -17
sound/soc/codecs/stac9766.c
··· 191 191 vra = stac9766_ac97_read(codec, AC97_EXTENDED_STATUS); 192 192 193 193 vra |= 0x1; /* enable variable rate audio */ 194 + vra &= ~0x4; /* disable SPDIF output */ 194 195 195 196 stac9766_ac97_write(codec, AC97_EXTENDED_STATUS, vra); 196 197 ··· 220 219 reg = AC97_PCM_FRONT_DAC_RATE; 221 220 222 221 return stac9766_ac97_write(codec, reg, runtime->rate); 223 - } 224 - 225 - static int ac97_digital_trigger(struct snd_pcm_substream *substream, 226 - int cmd, struct snd_soc_dai *dai) 227 - { 228 - struct snd_soc_codec *codec = dai->codec; 229 - unsigned short vra; 230 - 231 - switch (cmd) { 232 - case SNDRV_PCM_TRIGGER_STOP: 233 - vra = stac9766_ac97_read(codec, AC97_EXTENDED_STATUS); 234 - vra &= !0x04; 235 - stac9766_ac97_write(codec, AC97_EXTENDED_STATUS, vra); 236 - break; 237 - } 238 - return 0; 239 222 } 240 223 241 224 static int stac9766_set_bias_level(struct snd_soc_codec *codec, ··· 300 315 301 316 static struct snd_soc_dai_ops stac9766_dai_ops_digital = { 302 317 .prepare = ac97_digital_prepare, 303 - .trigger = ac97_digital_trigger, 304 318 }; 305 319 306 320 struct snd_soc_dai stac9766_dai[] = {