@@ -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
71277159enum {
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
96109647static 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