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

ALSA: hda - fixup for the bass speaker on Lenovo Carbon X1 7th gen

The auto-parser assigns the bass speaker to DAC3 (NID 0x06) which
is without the volume control. I do not see a reason to use DAC2,
because the shared output to all speakers produces the sufficient
and well balanced sound. The stereo support is enough for this
purpose (laptop).

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Link: https://lore.kernel.org/r/20191129144027.14765-1-perex@perex.cz
Signed-off-by: Takashi Iwai <tiwai@suse.de>

authored by

Jaroslav Kysela and committed by
Takashi Iwai
d2cd795c 609f5485

+17
+17
sound/pci/hda/patch_realtek.c
··· 5547 5547 } 5548 5548 } 5549 5549 5550 + /* force NID 0x17 (Bass Speaker) to DAC1 to share it with the main speaker */ 5551 + static void alc285_fixup_speaker2_to_dac1(struct hda_codec *codec, 5552 + const struct hda_fixup *fix, int action) 5553 + { 5554 + if (action == HDA_FIXUP_ACT_PRE_PROBE) { 5555 + hda_nid_t conn[1] = { 0x02 }; 5556 + snd_hda_override_conn_list(codec, 0x17, 1, conn); 5557 + } 5558 + } 5559 + 5550 5560 /* Hook to update amp GPIO4 for automute */ 5551 5561 static void alc280_hp_gpio4_automute_hook(struct hda_codec *codec, 5552 5562 struct hda_jack_callback *jack) ··· 5859 5849 ALC225_FIXUP_DISABLE_MIC_VREF, 5860 5850 ALC225_FIXUP_DELL1_MIC_NO_PRESENCE, 5861 5851 ALC295_FIXUP_DISABLE_DAC3, 5852 + ALC285_FIXUP_SPEAKER2_TO_DAC1, 5862 5853 ALC280_FIXUP_HP_HEADSET_MIC, 5863 5854 ALC221_FIXUP_HP_FRONT_MIC, 5864 5855 ALC292_FIXUP_TPT460, ··· 6660 6649 .type = HDA_FIXUP_FUNC, 6661 6650 .v.func = alc295_fixup_disable_dac3, 6662 6651 }, 6652 + [ALC285_FIXUP_SPEAKER2_TO_DAC1] = { 6653 + .type = HDA_FIXUP_FUNC, 6654 + .v.func = alc285_fixup_speaker2_to_dac1, 6655 + }, 6663 6656 [ALC256_FIXUP_DELL_INSPIRON_7559_SUBWOOFER] = { 6664 6657 .type = HDA_FIXUP_PINS, 6665 6658 .v.pins = (const struct hda_pintbl[]) { ··· 7239 7224 SND_PCI_QUIRK(0x17aa, 0x224c, "Thinkpad", ALC298_FIXUP_TPT470_DOCK), 7240 7225 SND_PCI_QUIRK(0x17aa, 0x224d, "Thinkpad", ALC298_FIXUP_TPT470_DOCK), 7241 7226 SND_PCI_QUIRK(0x17aa, 0x225d, "Thinkpad T480", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), 7227 + SND_PCI_QUIRK(0x17aa, 0x2293, "Thinkpad X1 Carbon 7th", ALC285_FIXUP_SPEAKER2_TO_DAC1), 7242 7228 SND_PCI_QUIRK(0x17aa, 0x30bb, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY), 7243 7229 SND_PCI_QUIRK(0x17aa, 0x30e2, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY), 7244 7230 SND_PCI_QUIRK(0x17aa, 0x310c, "ThinkCentre Station", ALC294_FIXUP_LENOVO_MIC_LOCATION), ··· 7424 7408 {.id = ALC255_FIXUP_DELL_SPK_NOISE, .name = "dell-spk-noise"}, 7425 7409 {.id = ALC225_FIXUP_DELL1_MIC_NO_PRESENCE, .name = "alc225-dell1"}, 7426 7410 {.id = ALC295_FIXUP_DISABLE_DAC3, .name = "alc295-disable-dac3"}, 7411 + {.id = ALC285_FIXUP_SPEAKER2_TO_DAC1, .name = "alc285-speaker2-to-dac1"}, 7427 7412 {.id = ALC280_FIXUP_HP_HEADSET_MIC, .name = "alc280-hp-headset"}, 7428 7413 {.id = ALC221_FIXUP_HP_FRONT_MIC, .name = "alc221-hp-mic"}, 7429 7414 {.id = ALC298_FIXUP_SPK_VOLUME, .name = "alc298-spk-volume"},