ALSA: hda - Check invalid NIDs in alc_init_jacks()
authorTakashi Iwai <tiwai@suse.de>
Tue, 21 Sep 2010 09:26:21 +0000 (11:26 +0200)
committerTakashi Iwai <tiwai@suse.de>
Tue, 21 Sep 2010 09:26:21 +0000 (11:26 +0200)
The headphone and external-mic pin NIDs can be null, and the jack input
elements should be skipped in such a case.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/patch_realtek.c

index 9bedca0..f5ccba0 100644 (file)
@@ -1087,15 +1087,19 @@ static int alc_init_jacks(struct hda_codec *codec)
        unsigned int hp_nid = spec->autocfg.hp_pins[0];
        unsigned int mic_nid = spec->ext_mic.pin;
 
-       err = alc_add_jack(codec, hp_nid, SND_JACK_HEADPHONE);
-       if (err < 0)
-               return err;
-       alc_report_jack(codec, hp_nid);
+       if (hp_nid) {
+               err = alc_add_jack(codec, hp_nid, SND_JACK_HEADPHONE);
+               if (err < 0)
+                       return err;
+               alc_report_jack(codec, hp_nid);
+       }
 
-       err = alc_add_jack(codec, mic_nid, SND_JACK_MICROPHONE);
-       if (err < 0)
-               return err;
-       alc_report_jack(codec, mic_nid);
+       if (mic_nid) {
+               err = alc_add_jack(codec, mic_nid, SND_JACK_MICROPHONE);
+               if (err < 0)
+                       return err;
+               alc_report_jack(codec, mic_nid);
+       }
 
        return 0;
 }