Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ALSA: hda/realtek - Fix detection of ALC271X codec

In commit af741c1 ("ALSA: hda/realtek - Call alc_auto_parse_customize_define()
always after fixup"), alc_auto_parse_customize_define was moved after
detection of ALC271X.

The problem is that detection of ALC271X relies on spec->cdefine.platform_type,
and it's set on alc_auto_parse_customize_define.

Move the alc_auto_parse_customize_define and its required fixup setup
before the block doing the ALC271X and other codec setup.

BugLink: https://bugs.launchpad.net/bugs/1006690
Signed-off-by: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com>
Reviewed-by: David Henningsson <david.henningsson@canonical.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>

authored by

Herton Ronaldo Krzesinski and committed by
Takashi Iwai
9f720bb9 e4db0952

+6 -6
+6 -6
sound/pci/hda/patch_realtek.c
··· 6307 6307 6308 6308 spec = codec->spec; 6309 6309 6310 + alc_pick_fixup(codec, alc269_fixup_models, 6311 + alc269_fixup_tbl, alc269_fixups); 6312 + alc_apply_fixup(codec, ALC_FIXUP_ACT_PRE_PROBE); 6313 + 6314 + alc_auto_parse_customize_define(codec); 6315 + 6310 6316 if (codec->vendor_id == 0x10ec0269) { 6311 6317 spec->codec_variant = ALC269_TYPE_ALC269VA; 6312 6318 switch (alc_get_coef0(codec) & 0x00f0) { ··· 6339 6333 spec->init_hook = alc269_fill_coef; 6340 6334 alc269_fill_coef(codec); 6341 6335 } 6342 - 6343 - alc_pick_fixup(codec, alc269_fixup_models, 6344 - alc269_fixup_tbl, alc269_fixups); 6345 - alc_apply_fixup(codec, ALC_FIXUP_ACT_PRE_PROBE); 6346 - 6347 - alc_auto_parse_customize_define(codec); 6348 6336 6349 6337 /* automatic parse from the BIOS config */ 6350 6338 err = alc269_parse_auto_config(codec);