aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2005-06-10 13:48:10 -0400
committerJaroslav Kysela <perex@suse.cz>2005-06-22 06:28:40 -0400
commit4b3acaf5b56f53ef259a6ddf8e17dcb529631d9b (patch)
tree158c8be4beaea35e9e9f855205d10c5375da6cf9 /sound
parent3e289f16ec2e08bbb37ce57a31386ed135887da4 (diff)
[ALSA] hda-codec - Feed front signals to all surrounds
HDA Codec driver Feed front signals to all surround channels if no data is given for surround channels. It seems that CLFE works as expected (only center outputs) even if connected from the front line - at least on my test system. If this change causes problems on other system (e.g. only the left channel is transferred to the center channel), please let me know... Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound')
-rw-r--r--sound/pci/hda/hda_codec.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index cb3a7613934..8805928167f 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}