Browse Source

ALSA: hda - Add missing badness evaluation for unresolved paths

When a patch couldn't be resolved in try_assign_dacs() although the
target DAC is expected, we forgot to add a proper badness value but
continued.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai 12 years ago
parent
commit
1fa335b0b7
1 changed files with 5 additions and 2 deletions
  1. 5 2
      sound/pci/hda/hda_generic.c

+ 5 - 2
sound/pci/hda/hda_generic.c

@@ -1105,14 +1105,17 @@ static int try_assign_dacs(struct hda_codec *codec, int num_outs,
 			else
 				badness += bad->no_dac;
 		}
+		if (!dac)
+			continue;
 		path = snd_hda_add_new_path(codec, dac, pin, -spec->mixer_nid);
 		if (!path && !i && spec->mixer_nid) {
 			/* try with aamix */
 			path = snd_hda_add_new_path(codec, dac, pin, 0);
 		}
-		if (!path)
+		if (!path) {
 			dac = dacs[i] = 0;
-		else {
+			badness += bad->no_dac;
+		} else {
 			/* print_nid_path("output", path); */
 			path->active = true;
 			path_idx[i] = snd_hda_get_path_idx(codec, path);