ALSA: hda/realtek - Call alc_auto_parse_customize_define() always after fixup
Takashi Iwai [Mon, 7 May 2012 16:09:48 +0000 (18:09 +0200)]
The call for alc_auto_parse_customize_define() must be done after the
fixup pre-probe initialization.  Otherwise SKU_IGNORE fixup won't work
properly (e.g. HP RP5800 with ALC662 codec).

Signed-off-by: Takashi Iwai <tiwai@suse.de>

sound/pci/hda/patch_realtek.c

index 8ea613e..7810913 100644 (file)
@@ -5641,13 +5641,13 @@ static int patch_alc262(struct hda_codec *codec)
        snd_hda_codec_write(codec, 0x1a, 0, AC_VERB_SET_PROC_COEF, tmp | 0x80);
        }
 #endif
-       alc_auto_parse_customize_define(codec);
-
        alc_fix_pll_init(codec, 0x20, 0x0a, 10);
 
        alc_pick_fixup(codec, NULL, alc262_fixup_tbl, alc262_fixups);
        alc_apply_fixup(codec, ALC_FIXUP_ACT_PRE_PROBE);
 
+       alc_auto_parse_customize_define(codec);
+
        /* automatic parse from the BIOS config */
        err = alc262_parse_auto_config(codec);
        if (err < 0)
@@ -6252,8 +6252,6 @@ static int patch_alc269(struct hda_codec *codec)
 
        spec->mixer_nid = 0x0b;
 
-       alc_auto_parse_customize_define(codec);
-
        err = alc_codec_rename_from_preset(codec);
        if (err < 0)
                goto error;
@@ -6286,6 +6284,8 @@ static int patch_alc269(struct hda_codec *codec)
                       alc269_fixup_tbl, alc269_fixups);
        alc_apply_fixup(codec, ALC_FIXUP_ACT_PRE_PROBE);
 
+       alc_auto_parse_customize_define(codec);
+
        /* automatic parse from the BIOS config */
        err = alc269_parse_auto_config(codec);
        if (err < 0)
@@ -6862,8 +6862,6 @@ static int patch_alc662(struct hda_codec *codec)
        /* handle multiple HPs as is */
        spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP;
 
-       alc_auto_parse_customize_define(codec);
-
        alc_fix_pll_init(codec, 0x20, 0x04, 15);
 
        err = alc_codec_rename_from_preset(codec);
@@ -6880,6 +6878,9 @@ static int patch_alc662(struct hda_codec *codec)
        alc_pick_fixup(codec, alc662_fixup_models,
                       alc662_fixup_tbl, alc662_fixups);
        alc_apply_fixup(codec, ALC_FIXUP_ACT_PRE_PROBE);
+
+       alc_auto_parse_customize_define(codec);
+
        /* automatic parse from the BIOS config */
        err = alc662_parse_auto_config(codec);
        if (err < 0)