summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2010-04-05 23:25:13 +0200
committerTakashi Iwai <tiwai@suse.de>2010-04-05 23:36:16 +0200
commitf9700d5a4575e7fb343df10a1d29d425e4b81082 (patch)
tree3a5f062f63a45dbf7da8deb53304e360ae24b905
parentd12841827a6de120199609dadb6ff4ec99bd90ea (diff)
downloadlinux-rt-f9700d5a4575e7fb343df10a1d29d425e4b81082.tar.gz
ALSA: hda - Fix a wrong array range check in patch_realtek.c
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>
-rw-r--r--sound/pci/hda/patch_realtek.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 547206296d7b..c7730dbb9ddb 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -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);
}