aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2012-05-07 12:09:48 -0400
committerTakashi Iwai <tiwai@suse.de>2012-05-08 08:10:31 -0400
commitaf741c150f66db8d1da6f82ac75e2571f7f1dd38 (patch)
treedc080752126a111ff2317f155d221f00fed7dfc5 /sound/pci
parent42eb92380f73f28e3a5a51973af1183fdbac82f2 (diff)
ALSA: hda/realtek - Call alc_auto_parse_customize_define() always after fixup
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>
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/hda/patch_realtek.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 8ea613eb73f0..7810913d07a0 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -5641,13 +5641,13 @@ static int patch_alc262(struct hda_codec *codec)
5641 snd_hda_codec_write(codec, 0x1a, 0, AC_VERB_SET_PROC_COEF, tmp | 0x80); 5641 snd_hda_codec_write(codec, 0x1a, 0, AC_VERB_SET_PROC_COEF, tmp | 0x80);
5642 } 5642 }
5643#endif 5643#endif
5644 alc_auto_parse_customize_define(codec);
5645
5646 alc_fix_pll_init(codec, 0x20, 0x0a, 10); 5644 alc_fix_pll_init(codec, 0x20, 0x0a, 10);
5647 5645
5648 alc_pick_fixup(codec, NULL, alc262_fixup_tbl, alc262_fixups); 5646 alc_pick_fixup(codec, NULL, alc262_fixup_tbl, alc262_fixups);
5649 alc_apply_fixup(codec, ALC_FIXUP_ACT_PRE_PROBE); 5647 alc_apply_fixup(codec, ALC_FIXUP_ACT_PRE_PROBE);
5650 5648
5649 alc_auto_parse_customize_define(codec);
5650
5651 /* automatic parse from the BIOS config */ 5651 /* automatic parse from the BIOS config */
5652 err = alc262_parse_auto_config(codec); 5652 err = alc262_parse_auto_config(codec);
5653 if (err < 0) 5653 if (err < 0)
@@ -6252,8 +6252,6 @@ static int patch_alc269(struct hda_codec *codec)
6252 6252
6253 spec->mixer_nid = 0x0b; 6253 spec->mixer_nid = 0x0b;
6254 6254
6255 alc_auto_parse_customize_define(codec);
6256
6257 err = alc_codec_rename_from_preset(codec); 6255 err = alc_codec_rename_from_preset(codec);
6258 if (err < 0) 6256 if (err < 0)
6259 goto error; 6257 goto error;
@@ -6286,6 +6284,8 @@ static int patch_alc269(struct hda_codec *codec)
6286 alc269_fixup_tbl, alc269_fixups); 6284 alc269_fixup_tbl, alc269_fixups);
6287 alc_apply_fixup(codec, ALC_FIXUP_ACT_PRE_PROBE); 6285 alc_apply_fixup(codec, ALC_FIXUP_ACT_PRE_PROBE);
6288 6286
6287 alc_auto_parse_customize_define(codec);
6288
6289 /* automatic parse from the BIOS config */ 6289 /* automatic parse from the BIOS config */
6290 err = alc269_parse_auto_config(codec); 6290 err = alc269_parse_auto_config(codec);
6291 if (err < 0) 6291 if (err < 0)
@@ -6862,8 +6862,6 @@ static int patch_alc662(struct hda_codec *codec)
6862 /* handle multiple HPs as is */ 6862 /* handle multiple HPs as is */
6863 spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP; 6863 spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP;
6864 6864
6865 alc_auto_parse_customize_define(codec);
6866
6867 alc_fix_pll_init(codec, 0x20, 0x04, 15); 6865 alc_fix_pll_init(codec, 0x20, 0x04, 15);
6868 6866
6869 err = alc_codec_rename_from_preset(codec); 6867 err = alc_codec_rename_from_preset(codec);
@@ -6880,6 +6878,9 @@ static int patch_alc662(struct hda_codec *codec)
6880 alc_pick_fixup(codec, alc662_fixup_models, 6878 alc_pick_fixup(codec, alc662_fixup_models,
6881 alc662_fixup_tbl, alc662_fixups); 6879 alc662_fixup_tbl, alc662_fixups);
6882 alc_apply_fixup(codec, ALC_FIXUP_ACT_PRE_PROBE); 6880 alc_apply_fixup(codec, ALC_FIXUP_ACT_PRE_PROBE);
6881
6882 alc_auto_parse_customize_define(codec);
6883
6883 /* automatic parse from the BIOS config */ 6884 /* automatic parse from the BIOS config */
6884 err = alc662_parse_auto_config(codec); 6885 err = alc662_parse_auto_config(codec);
6885 if (err < 0) 6886 if (err < 0)