diff -r 054dc7195722 pci/hda/patch_sigmatel.c --- a/pci/hda/patch_sigmatel.c Mon Jul 02 16:03:12 2007 +0200 +++ b/pci/hda/patch_sigmatel.c Mon Jul 02 16:15:39 2007 +0200 @@ -1228,7 +1228,7 @@ static int is_in_dac_nids(struct sigmate * and 9202/925x. For those, dac_nids[] must be hard-coded. */ static int stac92xx_auto_fill_dac_nids(struct hda_codec *codec, - const struct auto_pin_cfg *cfg) + struct auto_pin_cfg *cfg) { struct sigmatel_spec *spec = codec->spec; int i, j, conn_len = 0; @@ -1253,6 +1253,13 @@ static int stac92xx_auto_fill_dac_nids(s } if (j == conn_len) { + if (spec->multiout.num_dacs > 0) { + /* we have already working output pins, + * so let's drop the broken ones again + */ + cfg->line_outs = spec->multiout.num_dacs; + break; + } /* error out, no available DAC found */ snd_printk(KERN_ERR "%s: No available DAC for pin 0x%x\n",