ALSA: hda - Disable the sanity check in snd_hda_add_pincfg()
authorTakashi Iwai <tiwai@suse.de>
Thu, 18 Apr 2013 07:59:28 +0000 (09:59 +0200)
committerTakashi Iwai <tiwai@suse.de>
Thu, 18 Apr 2013 07:59:28 +0000 (09:59 +0200)
When pin default configs are overridden via patch option, these are
evaluated before fixups are applied.  Since some fixups change the
whole codec trees and/or add pins dynamically, this sanity check might
not pass when pins aren't present at the time the function is called.

We may reorder the execution, but an easier fix is simply to disable
this sanity check.

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

index 3603cbe2d40ea2a2a76e14d69f403ee3a4997613..6f9b64700f6e48ec859bb7153a5bc119812062b4 100644 (file)
@@ -1065,8 +1065,14 @@ int snd_hda_add_pincfg(struct hda_codec *codec, struct snd_array *list,
 {
        struct hda_pincfg *pin;
 
+       /* the check below may be invalid when pins are added by a fixup
+        * dynamically (e.g. via snd_hda_codec_update_widgets()), so disabled
+        * for now
+        */
+       /*
        if (get_wcaps_type(get_wcaps(codec, nid)) != AC_WID_PIN)
                return -EINVAL;
+       */
 
        pin = look_up_pincfg(codec, list, nid);
        if (!pin) {