Skip to content

Commit d2cd795

Browse files
perexgtiwai
authored andcommitted
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 <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Takashi Iwai <[email protected]>
1 parent 609f548 commit d2cd795

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

sound/pci/hda/patch_realtek.c

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5547,6 +5547,16 @@ static void alc295_fixup_disable_dac3(struct hda_codec *codec,
55475547
}
55485548
}
55495549

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+
55505560
/* Hook to update amp GPIO4 for automute */
55515561
static void alc280_hp_gpio4_automute_hook(struct hda_codec *codec,
55525562
struct hda_jack_callback *jack)
@@ -5849,6 +5859,7 @@ enum {
58495859
ALC225_FIXUP_DISABLE_MIC_VREF,
58505860
ALC225_FIXUP_DELL1_MIC_NO_PRESENCE,
58515861
ALC295_FIXUP_DISABLE_DAC3,
5862+
ALC285_FIXUP_SPEAKER2_TO_DAC1,
58525863
ALC280_FIXUP_HP_HEADSET_MIC,
58535864
ALC221_FIXUP_HP_FRONT_MIC,
58545865
ALC292_FIXUP_TPT460,
@@ -6649,6 +6660,10 @@ static const struct hda_fixup alc269_fixups[] = {
66496660
.type = HDA_FIXUP_FUNC,
66506661
.v.func = alc295_fixup_disable_dac3,
66516662
},
6663+
[ALC285_FIXUP_SPEAKER2_TO_DAC1] = {
6664+
.type = HDA_FIXUP_FUNC,
6665+
.v.func = alc285_fixup_speaker2_to_dac1,
6666+
},
66526667
[ALC256_FIXUP_DELL_INSPIRON_7559_SUBWOOFER] = {
66536668
.type = HDA_FIXUP_PINS,
66546669
.v.pins = (const struct hda_pintbl[]) {
@@ -7224,6 +7239,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
72247239
SND_PCI_QUIRK(0x17aa, 0x224c, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
72257240
SND_PCI_QUIRK(0x17aa, 0x224d, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
72267241
SND_PCI_QUIRK(0x17aa, 0x225d, "Thinkpad T480", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
7242+
SND_PCI_QUIRK(0x17aa, 0x2293, "Thinkpad X1 Carbon 7th", ALC285_FIXUP_SPEAKER2_TO_DAC1),
72277243
SND_PCI_QUIRK(0x17aa, 0x30bb, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY),
72287244
SND_PCI_QUIRK(0x17aa, 0x30e2, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY),
72297245
SND_PCI_QUIRK(0x17aa, 0x310c, "ThinkCentre Station", ALC294_FIXUP_LENOVO_MIC_LOCATION),
@@ -7408,6 +7424,7 @@ static const struct hda_model_fixup alc269_fixup_models[] = {
74087424
{.id = ALC255_FIXUP_DELL_SPK_NOISE, .name = "dell-spk-noise"},
74097425
{.id = ALC225_FIXUP_DELL1_MIC_NO_PRESENCE, .name = "alc225-dell1"},
74107426
{.id = ALC295_FIXUP_DISABLE_DAC3, .name = "alc295-disable-dac3"},
7427+
{.id = ALC285_FIXUP_SPEAKER2_TO_DAC1, .name = "alc285-speaker2-to-dac1"},
74117428
{.id = ALC280_FIXUP_HP_HEADSET_MIC, .name = "alc280-hp-headset"},
74127429
{.id = ALC221_FIXUP_HP_FRONT_MIC, .name = "alc221-hp-mic"},
74137430
{.id = ALC298_FIXUP_SPK_VOLUME, .name = "alc298-spk-volume"},

0 commit comments

Comments
 (0)