diff options
Diffstat (limited to 'sound')
-rw-r--r-- | sound/pci/hda/hda_generic.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/sound/pci/hda/hda_generic.c b/sound/pci/hda/hda_generic.c index b964e09cdec6..ac079f93c535 100644 --- a/sound/pci/hda/hda_generic.c +++ b/sound/pci/hda/hda_generic.c | |||
@@ -1371,22 +1371,25 @@ static int check_aamix_out_path(struct hda_codec *codec, int path_idx) | |||
1371 | { | 1371 | { |
1372 | struct hda_gen_spec *spec = codec->spec; | 1372 | struct hda_gen_spec *spec = codec->spec; |
1373 | struct nid_path *path; | 1373 | struct nid_path *path; |
1374 | hda_nid_t dac, pin; | 1374 | hda_nid_t path_dac, dac, pin; |
1375 | 1375 | ||
1376 | path = snd_hda_get_path_from_idx(codec, path_idx); | 1376 | path = snd_hda_get_path_from_idx(codec, path_idx); |
1377 | if (!path || !path->depth || | 1377 | if (!path || !path->depth || |
1378 | is_nid_contained(path, spec->mixer_nid)) | 1378 | is_nid_contained(path, spec->mixer_nid)) |
1379 | return 0; | 1379 | return 0; |
1380 | dac = path->path[0]; | 1380 | path_dac = path->path[0]; |
1381 | dac = spec->private_dac_nids[0]; | ||
1381 | pin = path->path[path->depth - 1]; | 1382 | pin = path->path[path->depth - 1]; |
1382 | path = snd_hda_add_new_path(codec, dac, pin, spec->mixer_nid); | 1383 | path = snd_hda_add_new_path(codec, dac, pin, spec->mixer_nid); |
1383 | if (!path) { | 1384 | if (!path) { |
1384 | if (dac != spec->multiout.dac_nids[0]) | 1385 | if (dac != path_dac) |
1385 | dac = spec->multiout.dac_nids[0]; | 1386 | dac = path_dac; |
1386 | else if (spec->multiout.hp_out_nid[0]) | 1387 | else if (spec->multiout.hp_out_nid[0]) |
1387 | dac = spec->multiout.hp_out_nid[0]; | 1388 | dac = spec->multiout.hp_out_nid[0]; |
1388 | else if (spec->multiout.extra_out_nid[0]) | 1389 | else if (spec->multiout.extra_out_nid[0]) |
1389 | dac = spec->multiout.extra_out_nid[0]; | 1390 | dac = spec->multiout.extra_out_nid[0]; |
1391 | else | ||
1392 | dac = 0; | ||
1390 | if (dac) | 1393 | if (dac) |
1391 | path = snd_hda_add_new_path(codec, dac, pin, | 1394 | path = snd_hda_add_new_path(codec, dac, pin, |
1392 | spec->mixer_nid); | 1395 | spec->mixer_nid); |