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

ALSA: hda/realtek - Enable the bass speaker of ASUS UX431FLC

ASUS reported that there's an bass speaker in addition to internal
speaker and it uses DAC 0x02. It was not enabled in the commit
436e25505f34 ("ALSA: hda/realtek - Enable internal speaker of ASUS
UX431FLC") which only enables the amplifier and the front speaker.
This commit enables the bass speaker on top of the aforementioned
work to improve the acoustic experience.

Fixes: 436e25505f34 ("ALSA: hda/realtek - Enable internal speaker of ASUS UX431FLC")
Signed-off-by: Chris Chiu <chiu@endlessm.com>
Signed-off-by: Jian-Hong Pan <jian-hong@endlessm.com>
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20191230031118.95076-1-chiu@endlessm.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>

authored by

Chris Chiu and committed by
Takashi Iwai
48e01504 0aec96f5

+18 -20
+18 -20
sound/pci/hda/patch_realtek.c
··· 5905 5905 ALC256_FIXUP_ASUS_HEADSET_MIC, 5906 5906 ALC256_FIXUP_ASUS_MIC_NO_PRESENCE, 5907 5907 ALC299_FIXUP_PREDATOR_SPK, 5908 - ALC294_FIXUP_ASUS_INTSPK_HEADSET_MIC, 5909 5908 ALC256_FIXUP_MEDION_HEADSET_NO_PRESENCE, 5910 - ALC294_FIXUP_ASUS_INTSPK_GPIO, 5911 5909 ALC289_FIXUP_DELL_SPK2, 5912 5910 ALC289_FIXUP_DUAL_SPK, 5911 + ALC294_FIXUP_SPK2_TO_DAC1, 5912 + ALC294_FIXUP_ASUS_DUAL_SPK, 5913 + 5913 5914 }; 5914 5915 5915 5916 static const struct hda_fixup alc269_fixups[] = { ··· 6985 6984 { } 6986 6985 } 6987 6986 }, 6988 - [ALC294_FIXUP_ASUS_INTSPK_HEADSET_MIC] = { 6989 - .type = HDA_FIXUP_PINS, 6990 - .v.pins = (const struct hda_pintbl[]) { 6991 - { 0x14, 0x411111f0 }, /* disable confusing internal speaker */ 6992 - { 0x19, 0x04a11150 }, /* use as headset mic, without its own jack detect */ 6993 - { } 6994 - }, 6995 - .chained = true, 6996 - .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC 6997 - }, 6998 6987 [ALC256_FIXUP_MEDION_HEADSET_NO_PRESENCE] = { 6999 6988 .type = HDA_FIXUP_PINS, 7000 6989 .v.pins = (const struct hda_pintbl[]) { ··· 6994 7003 }, 6995 7004 .chained = true, 6996 7005 .chain_id = ALC256_FIXUP_ASUS_HEADSET_MODE 6997 - }, 6998 - [ALC294_FIXUP_ASUS_INTSPK_GPIO] = { 6999 - .type = HDA_FIXUP_FUNC, 7000 - /* The GPIO must be pulled to initialize the AMP */ 7001 - .v.func = alc_fixup_gpio4, 7002 - .chained = true, 7003 - .chain_id = ALC294_FIXUP_ASUS_INTSPK_HEADSET_MIC 7004 7006 }, 7005 7007 [ALC289_FIXUP_DELL_SPK2] = { 7006 7008 .type = HDA_FIXUP_PINS, ··· 7010 7026 .chained = true, 7011 7027 .chain_id = ALC289_FIXUP_DELL_SPK2 7012 7028 }, 7029 + [ALC294_FIXUP_SPK2_TO_DAC1] = { 7030 + .type = HDA_FIXUP_FUNC, 7031 + .v.func = alc285_fixup_speaker2_to_dac1, 7032 + .chained = true, 7033 + .chain_id = ALC294_FIXUP_ASUS_HEADSET_MIC 7034 + }, 7035 + [ALC294_FIXUP_ASUS_DUAL_SPK] = { 7036 + .type = HDA_FIXUP_FUNC, 7037 + /* The GPIO must be pulled to initialize the AMP */ 7038 + .v.func = alc_fixup_gpio4, 7039 + .chained = true, 7040 + .chain_id = ALC294_FIXUP_SPK2_TO_DAC1 7041 + }, 7042 + 7013 7043 }; 7014 7044 7015 7045 static const struct snd_pci_quirk alc269_fixup_tbl[] = { ··· 7185 7187 SND_PCI_QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_ASUS_ZENBOOK), 7186 7188 SND_PCI_QUIRK(0x1043, 0x1517, "Asus Zenbook UX31A", ALC269VB_FIXUP_ASUS_ZENBOOK_UX31A), 7187 7189 SND_PCI_QUIRK(0x1043, 0x16e3, "ASUS UX50", ALC269_FIXUP_STEREO_DMIC), 7188 - SND_PCI_QUIRK(0x1043, 0x17d1, "ASUS UX431FL", ALC294_FIXUP_ASUS_INTSPK_GPIO), 7190 + SND_PCI_QUIRK(0x1043, 0x17d1, "ASUS UX431FL", ALC294_FIXUP_ASUS_DUAL_SPK), 7189 7191 SND_PCI_QUIRK(0x1043, 0x18b1, "Asus MJ401TA", ALC256_FIXUP_ASUS_HEADSET_MIC), 7190 7192 SND_PCI_QUIRK(0x1043, 0x1a13, "Asus G73Jw", ALC269_FIXUP_ASUS_G73JW), 7191 7193 SND_PCI_QUIRK(0x1043, 0x1a30, "ASUS X705UD", ALC256_FIXUP_ASUS_MIC),