If there was two line_outs[] it would overrun into the dmic nid struct below and create a phantom "Surround" mixer.
Signed-off-by: Matthew Ranostay mranostay@embeddedalley.com --- diff -r 54a51b975975 pci/hda/patch_sigmatel.c --- a/pci/hda/patch_sigmatel.c Thu Feb 28 12:46:32 2008 +0100 +++ b/pci/hda/patch_sigmatel.c Thu Feb 28 16:52:43 2008 -0500 @@ -246,8 +246,8 @@ static hda_nid_t stac92hd71bxx_dmux_nids 0x1c, };
-static hda_nid_t stac92hd71bxx_dac_nids[1] = { - 0x10, /*0x11, */ +static hda_nid_t stac92hd71bxx_dac_nids[2] = { + 0x10, 0x11 };
#define STAC92HD71BXX_NUM_DMICS 2 @@ -2345,10 +2345,10 @@ static int stac92xx_auto_create_multi_ou
for (i = 0; i < cfg->line_outs; i++) { - if (!spec->multiout.dac_nids[i]) + + nid = spec->multiout.dac_nids[i]; + if (!nid || nid == spec->multiout.hp_nid) continue; - - nid = spec->multiout.dac_nids[i];
if (i == 2) { /* Center/LFE */ @@ -3550,7 +3550,7 @@ again: spec->num_pwrs = ARRAY_SIZE(stac92hd71bxx_pwr_nids); spec->pwr_nids = stac92hd71bxx_pwr_nids;
- spec->multiout.num_dacs = 1; + spec->multiout.num_dacs = ARRAY_SIZE(stac92hd71bxx_dac_nids); spec->multiout.hp_nid = 0x11; spec->multiout.dac_nids = stac92hd71bxx_dac_nids;