Comment 7 for bug 1181593

Revision history for this message
Raymond (superquad-vortex2) wrote :

snd_hda_multi_out_analog_prepare() in hda_codec.c

if the speaker pins were placed in mout->extra_out , both speaker and subwoofer had the front channel signal
there was a changs in auto parser and the speaker pins are placed in line out and this require 4 channels instead of stereo

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++) {
  if (chs >= (i + 1) * 2) /* independent out */
   snd_hda_codec_setup_stream(codec, nids[i], stream_tag,
         i * 2, format);
  else if (!mout->no_share_stream) /* copy front */
   snd_hda_codec_setup_stream(codec, nids[i], stream_tag,
         0, format);
 }