@@ -7057,6 +7057,27 @@ static void alc295_fixup_dell_inspiron_top_speakers(struct hda_codec *codec,
7057
7057
}
7058
7058
}
7059
7059
7060
+ /* Forcibly assign NID 0x03 to HP while NID 0x02 to SPK */
7061
+ static void alc287_fixup_bind_dacs (struct hda_codec * codec ,
7062
+ const struct hda_fixup * fix , int action )
7063
+ {
7064
+ struct alc_spec * spec = codec -> spec ;
7065
+ static const hda_nid_t conn [] = { 0x02 , 0x03 }; /* exclude 0x06 */
7066
+ static const hda_nid_t preferred_pairs [] = {
7067
+ 0x17 , 0x02 , 0x21 , 0x03 , 0
7068
+ };
7069
+
7070
+ if (action != HDA_FIXUP_ACT_PRE_PROBE )
7071
+ return ;
7072
+
7073
+ snd_hda_override_conn_list (codec , 0x17 , ARRAY_SIZE (conn ), conn );
7074
+ spec -> gen .preferred_dacs = preferred_pairs ;
7075
+ spec -> gen .auto_mute_via_amp = 1 ;
7076
+ snd_hda_codec_write_cache (codec , 0x14 , 0 , AC_VERB_SET_PIN_WIDGET_CONTROL ,
7077
+ 0x0 ); /* Make sure 0x14 was disable */
7078
+ }
7079
+
7080
+
7060
7081
enum {
7061
7082
ALC269_FIXUP_GPIO2 ,
7062
7083
ALC269_FIXUP_SONY_VAIO ,
@@ -7319,6 +7340,7 @@ enum {
7319
7340
ALC287_FIXUP_TAS2781_I2C ,
7320
7341
ALC245_FIXUP_HP_MUTE_LED_COEFBIT ,
7321
7342
ALC245_FIXUP_HP_X360_MUTE_LEDS ,
7343
+ ALC287_FIXUP_THINKPAD_I2S_SPK ,
7322
7344
};
7323
7345
7324
7346
/* A special fixup for Lenovo C940 and Yoga Duet 7;
@@ -9413,6 +9435,10 @@ static const struct hda_fixup alc269_fixups[] = {
9413
9435
.chained = true,
9414
9436
.chain_id = ALC245_FIXUP_HP_GPIO_LED
9415
9437
},
9438
+ [ALC287_FIXUP_THINKPAD_I2S_SPK ] = {
9439
+ .type = HDA_FIXUP_FUNC ,
9440
+ .v .func = alc287_fixup_bind_dacs ,
9441
+ },
9416
9442
};
9417
9443
9418
9444
static const struct snd_pci_quirk alc269_fixup_tbl [] = {
@@ -10544,6 +10570,10 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = {
10544
10570
{0x17 , 0x90170111 },
10545
10571
{0x19 , 0x03a11030 },
10546
10572
{0x21 , 0x03211020 }),
10573
+ SND_HDA_PIN_QUIRK (0x10ec0287 , 0x17aa , "Lenovo" , ALC287_FIXUP_THINKPAD_I2S_SPK ,
10574
+ {0x17 , 0x90170110 },
10575
+ {0x19 , 0x03a11030 },
10576
+ {0x21 , 0x03211020 }),
10547
10577
SND_HDA_PIN_QUIRK (0x10ec0286 , 0x1025 , "Acer" , ALC286_FIXUP_ACER_AIO_MIC_NO_PRESENCE ,
10548
10578
{0x12 , 0x90a60130 },
10549
10579
{0x17 , 0x90170110 },
0 commit comments