diff options
Diffstat (limited to 'sound/pci/hda/patch_via.c')
-rw-r--r-- | sound/pci/hda/patch_via.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c index d9a5c6a2dd9f..3515a3fb5d9d 100644 --- a/sound/pci/hda/patch_via.c +++ b/sound/pci/hda/patch_via.c | |||
@@ -357,7 +357,8 @@ static int via_playback_pcm_open(struct hda_pcm_stream *hinfo, | |||
357 | struct snd_pcm_substream *substream) | 357 | struct snd_pcm_substream *substream) |
358 | { | 358 | { |
359 | struct via_spec *spec = codec->spec; | 359 | struct via_spec *spec = codec->spec; |
360 | return snd_hda_multi_out_analog_open(codec, &spec->multiout, substream); | 360 | return snd_hda_multi_out_analog_open(codec, &spec->multiout, substream, |
361 | hinfo); | ||
361 | } | 362 | } |
362 | 363 | ||
363 | static int via_playback_pcm_prepare(struct hda_pcm_stream *hinfo, | 364 | static int via_playback_pcm_prepare(struct hda_pcm_stream *hinfo, |
@@ -493,6 +494,11 @@ static int via_build_controls(struct hda_codec *codec) | |||
493 | spec->multiout.dig_out_nid); | 494 | spec->multiout.dig_out_nid); |
494 | if (err < 0) | 495 | if (err < 0) |
495 | return err; | 496 | return err; |
497 | err = snd_hda_create_spdif_share_sw(codec, | ||
498 | &spec->multiout); | ||
499 | if (err < 0) | ||
500 | return err; | ||
501 | spec->multiout.share_spdif = 1; | ||
496 | } | 502 | } |
497 | if (spec->dig_in_nid) { | 503 | if (spec->dig_in_nid) { |
498 | err = snd_hda_create_spdif_in_ctls(codec, spec->dig_in_nid); | 504 | err = snd_hda_create_spdif_in_ctls(codec, spec->dig_in_nid); |