diff options
Diffstat (limited to 'sound/pci/hda/hda_codec.c')
-rw-r--r-- | sound/pci/hda/hda_codec.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index cb3a76139341..8805928167f5 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c | |||
@@ -1682,11 +1682,12 @@ int snd_hda_multi_out_analog_prepare(struct hda_codec *codec, struct hda_multi_o | |||
1682 | snd_hda_codec_setup_stream(codec, mout->hp_nid, stream_tag, 0, format); | 1682 | snd_hda_codec_setup_stream(codec, mout->hp_nid, stream_tag, 0, format); |
1683 | /* surrounds */ | 1683 | /* surrounds */ |
1684 | for (i = 1; i < mout->num_dacs; i++) { | 1684 | for (i = 1; i < mout->num_dacs; i++) { |
1685 | if (i == HDA_REAR && chs == 2) /* copy front to rear */ | 1685 | if (chs >= (i + 1) * 2) /* independent out */ |
1686 | snd_hda_codec_setup_stream(codec, nids[i], stream_tag, 0, format); | ||
1687 | else if (chs >= (i + 1) * 2) /* independent out */ | ||
1688 | snd_hda_codec_setup_stream(codec, nids[i], stream_tag, i * 2, | 1686 | snd_hda_codec_setup_stream(codec, nids[i], stream_tag, i * 2, |
1689 | format); | 1687 | format); |
1688 | else /* copy front */ | ||
1689 | snd_hda_codec_setup_stream(codec, nids[i], stream_tag, 0, | ||
1690 | format); | ||
1690 | } | 1691 | } |
1691 | return 0; | 1692 | return 0; |
1692 | } | 1693 | } |