diff options
Diffstat (limited to 'sound/pci/hda/patch_cmedia.c')
-rw-r--r-- | sound/pci/hda/patch_cmedia.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sound/pci/hda/patch_cmedia.c b/sound/pci/hda/patch_cmedia.c index 99ce74b4e9fc..9794d4166ae4 100644 --- a/sound/pci/hda/patch_cmedia.c +++ b/sound/pci/hda/patch_cmedia.c | |||
@@ -329,6 +329,11 @@ static int cmi9880_build_controls(struct hda_codec *codec) | |||
329 | err = snd_hda_create_spdif_out_ctls(codec, spec->multiout.dig_out_nid); | 329 | err = snd_hda_create_spdif_out_ctls(codec, spec->multiout.dig_out_nid); |
330 | if (err < 0) | 330 | if (err < 0) |
331 | return err; | 331 | return err; |
332 | err = snd_hda_create_spdif_share_sw(codec, | ||
333 | &spec->multiout); | ||
334 | if (err < 0) | ||
335 | return err; | ||
336 | spec->multiout.share_spdif = 1; | ||
332 | } | 337 | } |
333 | if (spec->dig_in_nid) { | 338 | if (spec->dig_in_nid) { |
334 | err = snd_hda_create_spdif_in_ctls(codec, spec->dig_in_nid); | 339 | err = snd_hda_create_spdif_in_ctls(codec, spec->dig_in_nid); |
@@ -432,7 +437,8 @@ static int cmi9880_playback_pcm_open(struct hda_pcm_stream *hinfo, | |||
432 | struct snd_pcm_substream *substream) | 437 | struct snd_pcm_substream *substream) |
433 | { | 438 | { |
434 | struct cmi_spec *spec = codec->spec; | 439 | struct cmi_spec *spec = codec->spec; |
435 | return snd_hda_multi_out_analog_open(codec, &spec->multiout, substream); | 440 | return snd_hda_multi_out_analog_open(codec, &spec->multiout, substream, |
441 | hinfo); | ||
436 | } | 442 | } |
437 | 443 | ||
438 | static int cmi9880_playback_pcm_prepare(struct hda_pcm_stream *hinfo, | 444 | static int cmi9880_playback_pcm_prepare(struct hda_pcm_stream *hinfo, |