diff options
author | Takashi Iwai <tiwai@suse.de> | 2012-05-07 12:09:48 -0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2012-05-08 08:10:31 -0400 |
commit | af741c150f66db8d1da6f82ac75e2571f7f1dd38 (patch) | |
tree | dc080752126a111ff2317f155d221f00fed7dfc5 /sound/pci | |
parent | 42eb92380f73f28e3a5a51973af1183fdbac82f2 (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.c | 13 |
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) |