Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8056d9bb authored by Mark Brown's avatar Mark Brown
Browse files

ASoC: Improve WM9713 voice DAC shutdown procedure

parent 93e051d2
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -940,13 +940,14 @@ static void wm9713_voiceshutdown(struct snd_pcm_substream *substream,
				 struct snd_soc_dai *dai)
{
	struct snd_soc_codec *codec = dai->codec;
	u16 status;
	u16 status, rate;

	/* Gracefully shut down the voice interface. */
	status = ac97_read(codec, AC97_EXTENDED_STATUS) | 0x1000;
	ac97_write(codec, AC97_HANDSET_RATE, 0x0280);
	rate = ac97_read(codec, AC97_HANDSET_RATE) & 0xF0FF;
	ac97_write(codec, AC97_HANDSET_RATE, rate | 0x0200);
	schedule_timeout_interruptible(msecs_to_jiffies(1));
	ac97_write(codec, AC97_HANDSET_RATE, 0x0F80);
	ac97_write(codec, AC97_HANDSET_RATE, rate | 0x0F00);
	ac97_write(codec, AC97_EXTENDED_MID, status);
}