@@ -7123,6 +7123,38 @@ static void alc_fixup_headset_mic(struct hda_codec *codec,
7123
7123
}
7124
7124
}
7125
7125
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
+
7126
7158
7127
7159
enum {
7128
7160
ALC269_FIXUP_GPIO2 ,
@@ -7402,6 +7434,7 @@ enum {
7402
7434
ALC245_FIXUP_CS35L56_SPI_4_HP_GPIO_LED ,
7403
7435
ALC256_FIXUP_ACER_SFG16_MICMUTE_LED ,
7404
7436
ALC256_FIXUP_HEADPHONE_AMP_VOL ,
7437
+ ALC245_FIXUP_HP_SPECTRE_X360_EU0XXX ,
7405
7438
};
7406
7439
7407
7440
/* A special fixup for Lenovo C940 and Yoga Duet 7;
@@ -9605,6 +9638,10 @@ static const struct hda_fixup alc269_fixups[] = {
9605
9638
.type = HDA_FIXUP_FUNC ,
9606
9639
.v .func = alc256_decrease_headphone_amp_val ,
9607
9640
},
9641
+ [ALC245_FIXUP_HP_SPECTRE_X360_EU0XXX ] = {
9642
+ .type = HDA_FIXUP_FUNC ,
9643
+ .v .func = alc245_fixup_hp_spectre_x360_eu0xxx ,
9644
+ },
9608
9645
};
9609
9646
9610
9647
static const struct snd_pci_quirk alc269_fixup_tbl [] = {
@@ -9968,7 +10005,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
9968
10005
SND_PCI_QUIRK (0x103c , 0x8be8 , "HP Envy 17" , ALC287_FIXUP_CS35L41_I2C_2 ),
9969
10006
SND_PCI_QUIRK (0x103c , 0x8be9 , "HP Envy 15" , ALC287_FIXUP_CS35L41_I2C_2 ),
9970
10007
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 ),
9972
10009
SND_PCI_QUIRK (0x103c , 0x8c16 , "HP Spectre 16" , ALC287_FIXUP_CS35L41_I2C_2 ),
9973
10010
SND_PCI_QUIRK (0x103c , 0x8c17 , "HP Spectre 16" , ALC287_FIXUP_CS35L41_I2C_2 ),
9974
10011
SND_PCI_QUIRK (0x103c , 0x8c46 , "HP EliteBook 830 G11" , ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED ),
0 commit comments