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

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'sound-5.3-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

Pull sound fixes from Takashi Iwai:
"A collection of small HD-audio fixes:

- A regression fix for Realtek codecs due to the recent
initialization procedure change

- A fix for potential endless loop at the quirk table lookup

- Quirks for Lenovo, ASUS and HP machines"

* tag 'sound-5.3-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
ALSA: hda/realtek - Fix the problem of two front mics on a ThinkCentre
ALSA: hda/realtek - Enable internal speaker & headset mic of ASUS UX431FL
ALSA: hda/realtek - Add quirk for HP Pavilion 15
ALSA: hda/realtek - Fix overridden device-specific initialization
ALSA: hda - Fix potential endless loop at applying quirks

+22 -3
+2 -2
sound/pci/hda/hda_auto_parser.c
··· 824 824 while (id >= 0) { 825 825 const struct hda_fixup *fix = codec->fixup_list + id; 826 826 827 + if (++depth > 10) 828 + break; 827 829 if (fix->chained_before) 828 830 apply_fixup(codec, fix->chain_id, action, depth + 1); 829 831 ··· 864 862 break; 865 863 } 866 864 if (!fix->chained || fix->chained_before) 867 - break; 868 - if (++depth > 10) 869 865 break; 870 866 id = fix->chain_id; 871 867 }
+2 -1
sound/pci/hda/hda_generic.c
··· 6009 6009 if (spec->init_hook) 6010 6010 spec->init_hook(codec); 6011 6011 6012 - snd_hda_apply_verbs(codec); 6012 + if (!spec->skip_verbs) 6013 + snd_hda_apply_verbs(codec); 6013 6014 6014 6015 init_multi_out(codec); 6015 6016 init_extra_out(codec);
+1
sound/pci/hda/hda_generic.h
··· 243 243 unsigned int indep_hp_enabled:1; /* independent HP enabled */ 244 244 unsigned int have_aamix_ctl:1; 245 245 unsigned int hp_mic_jack_modes:1; 246 + unsigned int skip_verbs:1; /* don't apply verbs at snd_hda_gen_init() */ 246 247 247 248 /* additional mute flags (only effective with auto_mute_via_amp=1) */ 248 249 u64 mute_bits;
+17
sound/pci/hda/patch_realtek.c
··· 837 837 if (spec->init_hook) 838 838 spec->init_hook(codec); 839 839 840 + spec->gen.skip_verbs = 1; /* applied in below */ 840 841 snd_hda_gen_init(codec); 841 842 alc_fix_pll(codec); 842 843 alc_auto_init_amp(codec, spec->init_amp); 844 + snd_hda_apply_verbs(codec); /* apply verbs here after own init */ 843 845 844 846 snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_INIT); 845 847 ··· 5799 5797 ALC286_FIXUP_ACER_AIO_HEADSET_MIC, 5800 5798 ALC256_FIXUP_ASUS_MIC_NO_PRESENCE, 5801 5799 ALC299_FIXUP_PREDATOR_SPK, 5800 + ALC294_FIXUP_ASUS_INTSPK_HEADSET_MIC, 5802 5801 }; 5803 5802 5804 5803 static const struct hda_fixup alc269_fixups[] = { ··· 6840 6837 { } 6841 6838 } 6842 6839 }, 6840 + [ALC294_FIXUP_ASUS_INTSPK_HEADSET_MIC] = { 6841 + .type = HDA_FIXUP_PINS, 6842 + .v.pins = (const struct hda_pintbl[]) { 6843 + { 0x14, 0x411111f0 }, /* disable confusing internal speaker */ 6844 + { 0x19, 0x04a11150 }, /* use as headset mic, without its own jack detect */ 6845 + { } 6846 + }, 6847 + .chained = true, 6848 + .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC 6849 + }, 6843 6850 }; 6844 6851 6845 6852 static const struct snd_pci_quirk alc269_fixup_tbl[] = { ··· 6992 6979 SND_PCI_QUIRK(0x103c, 0x82c0, "HP G3 mini premium", ALC221_FIXUP_HP_MIC_NO_PRESENCE), 6993 6980 SND_PCI_QUIRK(0x103c, 0x83b9, "HP Spectre x360", ALC269_FIXUP_HP_MUTE_LED_MIC3), 6994 6981 SND_PCI_QUIRK(0x103c, 0x8497, "HP Envy x360", ALC269_FIXUP_HP_MUTE_LED_MIC3), 6982 + SND_PCI_QUIRK(0x103c, 0x84e7, "HP Pavilion 15", ALC269_FIXUP_HP_MUTE_LED_MIC3), 6995 6983 SND_PCI_QUIRK(0x1043, 0x103e, "ASUS X540SA", ALC256_FIXUP_ASUS_MIC), 6996 6984 SND_PCI_QUIRK(0x1043, 0x103f, "ASUS TX300", ALC282_FIXUP_ASUS_TX300), 6997 6985 SND_PCI_QUIRK(0x1043, 0x106d, "Asus K53BE", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), ··· 7009 6995 SND_PCI_QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_ASUS_ZENBOOK), 7010 6996 SND_PCI_QUIRK(0x1043, 0x1517, "Asus Zenbook UX31A", ALC269VB_FIXUP_ASUS_ZENBOOK_UX31A), 7011 6997 SND_PCI_QUIRK(0x1043, 0x16e3, "ASUS UX50", ALC269_FIXUP_STEREO_DMIC), 6998 + SND_PCI_QUIRK(0x1043, 0x17d1, "ASUS UX431FL", ALC294_FIXUP_ASUS_INTSPK_HEADSET_MIC), 7012 6999 SND_PCI_QUIRK(0x1043, 0x1a13, "Asus G73Jw", ALC269_FIXUP_ASUS_G73JW), 7013 7000 SND_PCI_QUIRK(0x1043, 0x1a30, "ASUS X705UD", ALC256_FIXUP_ASUS_MIC), 7014 7001 SND_PCI_QUIRK(0x1043, 0x1b13, "Asus U41SV", ALC269_FIXUP_INV_DMIC), ··· 7087 7072 SND_PCI_QUIRK(0x17aa, 0x312a, "ThinkCentre Station", ALC294_FIXUP_LENOVO_MIC_LOCATION), 7088 7073 SND_PCI_QUIRK(0x17aa, 0x312f, "ThinkCentre Station", ALC294_FIXUP_LENOVO_MIC_LOCATION), 7089 7074 SND_PCI_QUIRK(0x17aa, 0x313c, "ThinkCentre Station", ALC294_FIXUP_LENOVO_MIC_LOCATION), 7075 + SND_PCI_QUIRK(0x17aa, 0x3151, "ThinkCentre Station", ALC283_FIXUP_HEADSET_MIC), 7090 7076 SND_PCI_QUIRK(0x17aa, 0x3902, "Lenovo E50-80", ALC269_FIXUP_DMIC_THINKPAD_ACPI), 7091 7077 SND_PCI_QUIRK(0x17aa, 0x3977, "IdeaPad S210", ALC283_FIXUP_INT_MIC), 7092 7078 SND_PCI_QUIRK(0x17aa, 0x3978, "Lenovo B50-70", ALC269_FIXUP_DMIC_THINKPAD_ACPI), ··· 8962 8946 static const struct hda_device_id snd_hda_id_realtek[] = { 8963 8947 HDA_CODEC_ENTRY(0x10ec0215, "ALC215", patch_alc269), 8964 8948 HDA_CODEC_ENTRY(0x10ec0221, "ALC221", patch_alc269), 8949 + HDA_CODEC_ENTRY(0x10ec0222, "ALC222", patch_alc269), 8965 8950 HDA_CODEC_ENTRY(0x10ec0225, "ALC225", patch_alc269), 8966 8951 HDA_CODEC_ENTRY(0x10ec0231, "ALC231", patch_alc269), 8967 8952 HDA_CODEC_ENTRY(0x10ec0233, "ALC233", patch_alc269),