badness += bad->no_dac;
}
path = snd_hda_add_new_path(codec, dac, pin, HDA_PARSE_NO_AAMIX);
+ if (!path && i > 0 && spec->mixer_nid) {
+ /* try with aamix */
+ path = snd_hda_add_new_path(codec, dac, pin, HDA_PARSE_ALL);
+ }
if (!path)
dac = dacs[i] = 0;
else
static bool map_singles(struct hda_codec *codec, int outs,
const hda_nid_t *pins, hda_nid_t *dacs)
{
+ struct hda_gen_spec *spec = codec->spec;
int i;
bool found = false;
for (i = 0; i < outs; i++) {
if (!dac)
continue;
path = snd_hda_add_new_path(codec, dac, pins[i], HDA_PARSE_NO_AAMIX);
+ if (!path && i > 0 && spec->mixer_nid)
+ path = snd_hda_add_new_path(codec, dac, pins[i], HDA_PARSE_ALL);
if (path) {
dacs[i] = dac;
found = true;