DMUX mixers need to be created before input source mixers, otherwise some STAC9228 codecs fail to record correctly or at all.
--- Signed-off-by: Matthew Ranostay mranostay@embeddedalley.com
diff -r fbe3540c8df4 pci/hda/patch_sigmatel.c --- a/pci/hda/patch_sigmatel.c Tue Dec 18 18:05:52 2007 +0100 +++ b/pci/hda/patch_sigmatel.c Tue Dec 18 15:27:34 2007 -0700 @@ -834,15 +834,16 @@ static int stac92xx_build_controls(struc if (err < 0) return err;
- for (i = 0; i < spec->num_mixers; i++) { - err = snd_hda_add_new_ctls(codec, spec->mixers[i]); - if (err < 0) - return err; - } if (spec->num_dmuxes > 0) { stac_dmux_mixer.count = spec->num_dmuxes; err = snd_ctl_add(codec->bus->card, snd_ctl_new1(&stac_dmux_mixer, codec)); + if (err < 0) + return err; + } + + for (i = 0; i < spec->num_mixers; i++) { + err = snd_hda_add_new_ctls(codec, spec->mixers[i]); if (err < 0) return err; }