ALSA: hda - Add missing badness evaluation for unresolved paths
authorTakashi Iwai <tiwai@suse.de>
Mon, 21 Jan 2013 10:43:19 +0000 (11:43 +0100)
committerTakashi Iwai <tiwai@suse.de>
Mon, 21 Jan 2013 10:47:07 +0000 (11:47 +0100)
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>
sound/pci/hda/hda_generic.c

index 7b739b5898180d3905644383a72d635331a7850b..4e9761a9181687744580f4bf74c433d4edba8d01 100644 (file)
@@ -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);