Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4b3acaf5 authored by Takashi Iwai's avatar Takashi Iwai Committed by Jaroslav Kysela
Browse files

[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: default avatarTakashi Iwai <tiwai@suse.de>
parent 3e289f16
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -1682,11 +1682,12 @@ int snd_hda_multi_out_analog_prepare(struct hda_codec *codec, struct hda_multi_o
		snd_hda_codec_setup_stream(codec, mout->hp_nid, stream_tag, 0, format);
	/* surrounds */
	for (i = 1; i < mout->num_dacs; i++) {
		if (i == HDA_REAR && chs == 2) /* copy front to rear */
			snd_hda_codec_setup_stream(codec, nids[i], stream_tag, 0, format);
		else if (chs >= (i + 1) * 2) /* independent out */
		if (chs >= (i + 1) * 2) /* independent out */
			snd_hda_codec_setup_stream(codec, nids[i], stream_tag, i * 2,
						   format);
		else /* copy front */
			snd_hda_codec_setup_stream(codec, nids[i], stream_tag, 0,
						   format);
	}
	return 0;
}