ALSA: hda - Fix a wrong array range check in patch_realtek.c
authorTakashi Iwai <tiwai@suse.de>
Mon, 5 Apr 2010 21:25:13 +0000 (23:25 +0200)
committerTakashi Iwai <tiwai@suse.de>
Mon, 5 Apr 2010 21:36:16 +0000 (23:36 +0200)
The commit 6a4f2ccb467e00281470cde2dee08fe5ecde62d1 introduced a wrong
comparision for the array range check, which effectively skips the whole
initialization of DAC connections.  Fixed now.

Reference: bko#15689
https://bugzilla.kernel.org/show_bug.cgi?id=15689

Reported-by: Adrian Ulrich <kernel@blinkenlights.ch>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/patch_realtek.c

index 5472062..c7730db 100644 (file)
@@ -10110,13 +10110,12 @@ static void alc882_auto_set_output_and_unmute(struct hda_codec *codec,
        int idx;
 
        alc_set_pin_output(codec, nid, pin_type);
+       if (dac_idx >= spec->multiout.num_dacs)
+               return;
        if (spec->multiout.dac_nids[dac_idx] == 0x25)
                idx = 4;
-       else {
-               if (spec->multiout.num_dacs >= dac_idx)
-                       return;
+       else
                idx = spec->multiout.dac_nids[dac_idx] - 2;
-       }
        snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_CONNECT_SEL, idx);
 
 }