Skip to content

Commit 61456da

Browse files
Anthony I Gileatiwai
authored andcommitted
ALSA: hda/realtek: Add quirk for HP Spectre x360 14 eu0000
Cirrus amps support for this laptop was added in patch: 33e5e64 ("ALSA: hda: cs35l41: Support additional HP Envy Models") This patch adds fixes for wrong pincfgs, wrong DAC selection and mute/micmute LEDs. Signed-off-by: Anthony I Gilea <i@cpp.in> Message-ID: <e2a7aaed-e9d7-4d36-8abf-b71dfd32a0ff@cpp.in> Signed-off-by: Takashi Iwai <tiwai@suse.de>
1 parent 1e5dc39 commit 61456da

File tree

1 file changed

+38
-1
lines changed

1 file changed

+38
-1
lines changed

sound/pci/hda/patch_realtek.c

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7123,6 +7123,38 @@ static void alc_fixup_headset_mic(struct hda_codec *codec,
71237123
}
71247124
}
71257125

7126+
static void alc245_fixup_hp_spectre_x360_eu0xxx(struct hda_codec *codec,
7127+
const struct hda_fixup *fix, int action)
7128+
{
7129+
/*
7130+
* The Pin Complex 0x14 for the treble speakers is wrongly reported as
7131+
* unconnected.
7132+
* The Pin Complex 0x17 for the bass speakers has the lowest association
7133+
* and sequence values so shift it up a bit to squeeze 0x14 in.
7134+
*/
7135+
static const struct hda_pintbl pincfgs[] = {
7136+
{ 0x14, 0x90170110 }, // top/treble
7137+
{ 0x17, 0x90170111 }, // bottom/bass
7138+
{ }
7139+
};
7140+
7141+
/*
7142+
* Force DAC 0x02 for the bass speakers 0x17.
7143+
*/
7144+
static const hda_nid_t conn[] = { 0x02 };
7145+
7146+
switch (action) {
7147+
case HDA_FIXUP_ACT_PRE_PROBE:
7148+
snd_hda_apply_pincfgs(codec, pincfgs);
7149+
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
7150+
break;
7151+
}
7152+
7153+
cs35l41_fixup_i2c_two(codec, fix, action);
7154+
alc245_fixup_hp_mute_led_coefbit(codec, fix, action);
7155+
alc245_fixup_hp_gpio_led(codec, fix, action);
7156+
}
7157+
71267158

71277159
enum {
71287160
ALC269_FIXUP_GPIO2,
@@ -7402,6 +7434,7 @@ enum {
74027434
ALC245_FIXUP_CS35L56_SPI_4_HP_GPIO_LED,
74037435
ALC256_FIXUP_ACER_SFG16_MICMUTE_LED,
74047436
ALC256_FIXUP_HEADPHONE_AMP_VOL,
7437+
ALC245_FIXUP_HP_SPECTRE_X360_EU0XXX,
74057438
};
74067439

74077440
/* A special fixup for Lenovo C940 and Yoga Duet 7;
@@ -9605,6 +9638,10 @@ static const struct hda_fixup alc269_fixups[] = {
96059638
.type = HDA_FIXUP_FUNC,
96069639
.v.func = alc256_decrease_headphone_amp_val,
96079640
},
9641+
[ALC245_FIXUP_HP_SPECTRE_X360_EU0XXX] = {
9642+
.type = HDA_FIXUP_FUNC,
9643+
.v.func = alc245_fixup_hp_spectre_x360_eu0xxx,
9644+
},
96089645
};
96099646

96109647
static const struct snd_pci_quirk alc269_fixup_tbl[] = {
@@ -9968,7 +10005,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
996810005
SND_PCI_QUIRK(0x103c, 0x8be8, "HP Envy 17", ALC287_FIXUP_CS35L41_I2C_2),
996910006
SND_PCI_QUIRK(0x103c, 0x8be9, "HP Envy 15", ALC287_FIXUP_CS35L41_I2C_2),
997010007
SND_PCI_QUIRK(0x103c, 0x8bf0, "HP", ALC236_FIXUP_HP_GPIO_LED),
9971-
SND_PCI_QUIRK(0x103c, 0x8c15, "HP Spectre 14", ALC287_FIXUP_CS35L41_I2C_2),
10008+
SND_PCI_QUIRK(0x103c, 0x8c15, "HP Spectre x360 2-in-1 Laptop 14-eu0xxx", ALC245_FIXUP_HP_SPECTRE_X360_EU0XXX),
997210009
SND_PCI_QUIRK(0x103c, 0x8c16, "HP Spectre 16", ALC287_FIXUP_CS35L41_I2C_2),
997310010
SND_PCI_QUIRK(0x103c, 0x8c17, "HP Spectre 16", ALC287_FIXUP_CS35L41_I2C_2),
997410011
SND_PCI_QUIRK(0x103c, 0x8c46, "HP EliteBook 830 G11", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),

0 commit comments

Comments
 (0)