OSDN Git Service

ALSA: hda - Fix invalid snd_BUG_ON() in alc271_hp_gate_mic_jack()
authorTakashi Iwai <tiwai@suse.de>
Wed, 23 Jan 2013 12:57:20 +0000 (13:57 +0100)
committerTakashi Iwai <tiwai@suse.de>
Wed, 23 Jan 2013 12:57:20 +0000 (13:57 +0100)
The fixup function is called multiple times before parsing the pins,
so snd_BUG_ON() hits when loaded.  Move it to the proper place in the
if block.

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

index 604fe5e..515f83b 100644 (file)
@@ -2729,12 +2729,13 @@ static void alc271_hp_gate_mic_jack(struct hda_codec *codec,
 {
        struct alc_spec *spec = codec->spec;
 
-       if (snd_BUG_ON(!spec->gen.am_entry[1].pin ||
-                      !spec->gen.autocfg.hp_pins[0]))
-               return;
-       if (action == HDA_FIXUP_ACT_PROBE)
+       if (action == HDA_FIXUP_ACT_PROBE) {
+               if (snd_BUG_ON(!spec->gen.am_entry[1].pin ||
+                              !spec->gen.autocfg.hp_pins[0]))
+                       return;
                snd_hda_jack_set_gating_jack(codec, spec->gen.am_entry[1].pin,
                                             spec->gen.autocfg.hp_pins[0]);
+       }
 }
 
 enum {