Commit 4ab8c7f8 authored by Takashi Iwai's avatar Takashi Iwai Committed by Ben Hutchings

ALSA: hda - Force to reset IEC958 status bits for AD codecs

commit ae24c319 upstream.

Several bug reports suggest that the forcibly resetting IEC958 status
bits is required for AD codecs to get the SPDIF output working
properly after changing streams.

Original fix credit to Javeed Shaikh.

BugLink: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/359361Reported-by: default avatarRobin Kreis <r.kreis@uni-bremen.de>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
parent f385bbf0
...@@ -573,6 +573,7 @@ static int ad198x_build_pcms(struct hda_codec *codec) ...@@ -573,6 +573,7 @@ static int ad198x_build_pcms(struct hda_codec *codec)
if (spec->multiout.dig_out_nid) { if (spec->multiout.dig_out_nid) {
info++; info++;
codec->num_pcms++; codec->num_pcms++;
codec->spdif_status_reset = 1;
info->name = "AD198x Digital"; info->name = "AD198x Digital";
info->pcm_type = HDA_PCM_TYPE_SPDIF; info->pcm_type = HDA_PCM_TYPE_SPDIF;
info->stream[SNDRV_PCM_STREAM_PLAYBACK] = ad198x_pcm_digital_playback; info->stream[SNDRV_PCM_STREAM_PLAYBACK] = ad198x_pcm_digital_playback;
......
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