From 16ecb37cdc161f646456884f77dea80a925d9350 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Tue, 8 Dec 2009 12:52:47 +0100 Subject: [PATCH] --- yaml --- r: 174277 b: refs/heads/master c: d11f74c62fb4a1fefd39085570fb6dfa7b9ab2bb h: refs/heads/master i: 174275: 68200d6aa6247e08d7da5ce88ff120945b655b7c v: v3 --- [refs] | 2 +- trunk/sound/pci/hda/patch_realtek.c | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index d96abef1fc73..6756c9b7c418 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 23033b2bce4361f2859ee0331f97c9056dae7091 +refs/heads/master: d11f74c62fb4a1fefd39085570fb6dfa7b9ab2bb diff --git a/trunk/sound/pci/hda/patch_realtek.c b/trunk/sound/pci/hda/patch_realtek.c index 0fbcbeef1418..2a96bc78964d 100644 --- a/trunk/sound/pci/hda/patch_realtek.c +++ b/trunk/sound/pci/hda/patch_realtek.c @@ -10021,10 +10021,12 @@ static int patch_alc882(struct hda_codec *codec) spec->init_amp = ALC_INIT_DEFAULT; /* always initialize */ if (!spec->adc_nids && spec->input_mux) { - int i; + int i, j; spec->num_adc_nids = 0; for (i = 0; i < ARRAY_SIZE(alc882_adc_nids); i++) { + const struct hda_input_mux *imux = spec->input_mux; hda_nid_t cap; + hda_nid_t items[16]; hda_nid_t nid = alc882_adc_nids[i]; unsigned int wcap = get_wcaps(codec, nid); /* get type */ @@ -10035,6 +10037,15 @@ static int patch_alc882(struct hda_codec *codec) err = snd_hda_get_connections(codec, nid, &cap, 1); if (err < 0) continue; + err = snd_hda_get_connections(codec, cap, items, + ARRAY_SIZE(items)); + if (err < 0) + continue; + for (j = 0; j < imux->num_items; j++) + if (imux->items[j].index >= err) + break; + if (j < imux->num_items) + continue; spec->private_capsrc_nids[spec->num_adc_nids] = cap; spec->num_adc_nids++; }