|
@@ -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);
|