ALSA: hda - Fix input-src parse in patch_analog.c
authorAdrian Wilkins <adrian.wilkins@nhs.net>
Thu, 19 May 2011 20:52:38 +0000 (21:52 +0100)
committerSteve Conklin <sconklin@canonical.com>
Fri, 15 Jul 2011 17:21:03 +0000 (12:21 -0500)
BugLink: http://bugs.launchpad.net/bugs/793702

commit 5a2d227fdc7a02ed1b4cebba391d8fb9ad57caaf upstream.

Compare pin type enum to the pin type and not the array index.
Fixes bug#0005368.

Signed-off-by: Adrian Wilkins <adrian.wilkins@nhs.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>

sound/pci/hda/patch_analog.c

index 7aee900..f8363ae 100644 (file)
@@ -3167,6 +3167,7 @@ static void ad1988_auto_init_analog_input(struct hda_codec *codec)
 
        for (i = 0; i < cfg->num_inputs; i++) {
                hda_nid_t nid = cfg->inputs[i].pin;
+               int type = cfg->inputs[i].type;
                switch (nid) {
                case 0x15: /* port-C */
                        snd_hda_codec_write(codec, 0x33, 0, AC_VERB_SET_CONNECT_SEL, 0x0);
@@ -3176,7 +3177,7 @@ static void ad1988_auto_init_analog_input(struct hda_codec *codec)
                        break;
                }
                snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_PIN_WIDGET_CONTROL,
-                                   i == AUTO_PIN_MIC ? PIN_VREF80 : PIN_IN);
+                                   type == AUTO_PIN_MIC ? PIN_VREF80 : PIN_IN);
                if (nid != AD1988_PIN_CD_NID)
                        snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_AMP_GAIN_MUTE,
                                            AMP_OUT_MUTE);