mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
ALSA: hda - Enable surround speakers (when line out is also present)
In the case where we have both line out and more than stereo speakers, the speaker DACs will end up in extra_out_nid. In fact, AFAIU, speakers are the only ones that can end up in extra_out_nid, and if we have several of those, they should be surround outputs rather than copy front. BugLink: https://bugs.launchpad.net/bugs/1236965 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
6b5a7c66ce
commit
cd4035e814
1 changed files with 14 additions and 5 deletions
|
@ -5395,11 +5395,6 @@ int snd_hda_multi_out_analog_prepare(struct hda_codec *codec,
|
|||
snd_hda_codec_setup_stream(codec,
|
||||
mout->hp_out_nid[i],
|
||||
stream_tag, 0, format);
|
||||
for (i = 0; i < ARRAY_SIZE(mout->extra_out_nid); i++)
|
||||
if (!mout->no_share_stream && mout->extra_out_nid[i])
|
||||
snd_hda_codec_setup_stream(codec,
|
||||
mout->extra_out_nid[i],
|
||||
stream_tag, 0, format);
|
||||
|
||||
/* surrounds */
|
||||
for (i = 1; i < mout->num_dacs; i++) {
|
||||
|
@ -5410,6 +5405,20 @@ int snd_hda_multi_out_analog_prepare(struct hda_codec *codec,
|
|||
snd_hda_codec_setup_stream(codec, nids[i], stream_tag,
|
||||
0, format);
|
||||
}
|
||||
|
||||
/* extra surrounds */
|
||||
for (i = 0; i < ARRAY_SIZE(mout->extra_out_nid); i++) {
|
||||
int ch = 0;
|
||||
if (!mout->extra_out_nid[i])
|
||||
break;
|
||||
if (chs >= (i + 1) * 2)
|
||||
ch = i * 2;
|
||||
else if (!mout->no_share_stream)
|
||||
break;
|
||||
snd_hda_codec_setup_stream(codec, mout->extra_out_nid[i],
|
||||
stream_tag, ch, format);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_HDA(snd_hda_multi_out_analog_prepare);
|
||||
|
|
Loading…
Add table
Reference in a new issue