@@ -5856,6 +5856,15 @@ static void alc233_alc662_fixup_lenovo_dual_codecs(struct hda_codec *codec,
5856
5856
}
5857
5857
}
5858
5858
5859
+ static void alc225_fixup_s3_pop_noise (struct hda_codec * codec ,
5860
+ const struct hda_fixup * fix , int action )
5861
+ {
5862
+ if (action != HDA_FIXUP_ACT_PRE_PROBE )
5863
+ return ;
5864
+
5865
+ codec -> power_save_node = 1 ;
5866
+ }
5867
+
5859
5868
/* Forcibly assign NID 0x03 to HP/LO while NID 0x02 to SPK for EQ */
5860
5869
static void alc274_fixup_bind_dacs (struct hda_codec * codec ,
5861
5870
const struct hda_fixup * fix , int action )
@@ -5960,6 +5969,7 @@ enum {
5960
5969
ALC269_FIXUP_HP_LINE1_MIC1_LED ,
5961
5970
ALC269_FIXUP_INV_DMIC ,
5962
5971
ALC269_FIXUP_LENOVO_DOCK ,
5972
+ ALC269_FIXUP_LENOVO_DOCK_LIMIT_BOOST ,
5963
5973
ALC269_FIXUP_NO_SHUTUP ,
5964
5974
ALC286_FIXUP_SONY_MIC_NO_PRESENCE ,
5965
5975
ALC269_FIXUP_PINCFG_NO_HP_TO_LINEOUT ,
@@ -6045,6 +6055,7 @@ enum {
6045
6055
ALC233_FIXUP_ACER_HEADSET_MIC ,
6046
6056
ALC294_FIXUP_LENOVO_MIC_LOCATION ,
6047
6057
ALC225_FIXUP_DELL_WYSE_MIC_NO_PRESENCE ,
6058
+ ALC225_FIXUP_S3_POP_NOISE ,
6048
6059
ALC700_FIXUP_INTEL_REFERENCE ,
6049
6060
ALC274_FIXUP_DELL_BIND_DACS ,
6050
6061
ALC274_FIXUP_DELL_AIO_LINEOUT_VERB ,
@@ -6080,9 +6091,12 @@ enum {
6080
6091
ALC294_FIXUP_ASUS_DUAL_SPK ,
6081
6092
ALC285_FIXUP_THINKPAD_HEADSET_JACK ,
6082
6093
ALC294_FIXUP_ASUS_HPE ,
6094
+ ALC294_FIXUP_ASUS_COEF_1B ,
6083
6095
ALC285_FIXUP_HP_GPIO_LED ,
6084
6096
ALC285_FIXUP_HP_MUTE_LED ,
6085
6097
ALC236_FIXUP_HP_MUTE_LED ,
6098
+ ALC298_FIXUP_SAMSUNG_HEADPHONE_VERY_QUIET ,
6099
+ ALC295_FIXUP_ASUS_MIC_NO_PRESENCE ,
6086
6100
};
6087
6101
6088
6102
static const struct hda_fixup alc269_fixups [] = {
@@ -6280,6 +6294,12 @@ static const struct hda_fixup alc269_fixups[] = {
6280
6294
.chained = true,
6281
6295
.chain_id = ALC269_FIXUP_PINCFG_NO_HP_TO_LINEOUT
6282
6296
},
6297
+ [ALC269_FIXUP_LENOVO_DOCK_LIMIT_BOOST ] = {
6298
+ .type = HDA_FIXUP_FUNC ,
6299
+ .v .func = alc269_fixup_limit_int_mic_boost ,
6300
+ .chained = true,
6301
+ .chain_id = ALC269_FIXUP_LENOVO_DOCK ,
6302
+ },
6283
6303
[ALC269_FIXUP_PINCFG_NO_HP_TO_LINEOUT ] = {
6284
6304
.type = HDA_FIXUP_FUNC ,
6285
6305
.v .func = alc269_fixup_pincfg_no_hp_to_lineout ,
@@ -6932,6 +6952,12 @@ static const struct hda_fixup alc269_fixups[] = {
6932
6952
{ }
6933
6953
},
6934
6954
.chained = true,
6955
+ .chain_id = ALC225_FIXUP_S3_POP_NOISE
6956
+ },
6957
+ [ALC225_FIXUP_S3_POP_NOISE ] = {
6958
+ .type = HDA_FIXUP_FUNC ,
6959
+ .v .func = alc225_fixup_s3_pop_noise ,
6960
+ .chained = true,
6935
6961
.chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC
6936
6962
},
6937
6963
[ALC700_FIXUP_INTEL_REFERENCE ] = {
@@ -7204,6 +7230,17 @@ static const struct hda_fixup alc269_fixups[] = {
7204
7230
.chained = true,
7205
7231
.chain_id = ALC294_FIXUP_ASUS_HEADSET_MIC
7206
7232
},
7233
+ [ALC294_FIXUP_ASUS_COEF_1B ] = {
7234
+ .type = HDA_FIXUP_VERBS ,
7235
+ .v .verbs = (const struct hda_verb []) {
7236
+ /* Set bit 10 to correct noisy output after reboot from
7237
+ * Windows 10 (due to pop noise reduction?)
7238
+ */
7239
+ { 0x20 , AC_VERB_SET_COEF_INDEX , 0x1b },
7240
+ { 0x20 , AC_VERB_SET_PROC_COEF , 0x4e4b },
7241
+ { }
7242
+ },
7243
+ },
7207
7244
[ALC285_FIXUP_HP_GPIO_LED ] = {
7208
7245
.type = HDA_FIXUP_FUNC ,
7209
7246
.v .func = alc285_fixup_hp_gpio_led ,
@@ -7216,6 +7253,22 @@ static const struct hda_fixup alc269_fixups[] = {
7216
7253
.type = HDA_FIXUP_FUNC ,
7217
7254
.v .func = alc236_fixup_hp_mute_led ,
7218
7255
},
7256
+ [ALC298_FIXUP_SAMSUNG_HEADPHONE_VERY_QUIET ] = {
7257
+ .type = HDA_FIXUP_VERBS ,
7258
+ .v .verbs = (const struct hda_verb []) {
7259
+ { 0x1a , AC_VERB_SET_PIN_WIDGET_CONTROL , 0xc5 },
7260
+ { }
7261
+ },
7262
+ },
7263
+ [ALC295_FIXUP_ASUS_MIC_NO_PRESENCE ] = {
7264
+ .type = HDA_FIXUP_PINS ,
7265
+ .v .pins = (const struct hda_pintbl []) {
7266
+ { 0x19 , 0x01a1913c }, /* use as headset mic, without its own jack detect */
7267
+ { }
7268
+ },
7269
+ .chained = true,
7270
+ .chain_id = ALC269_FIXUP_HEADSET_MODE
7271
+ },
7219
7272
};
7220
7273
7221
7274
static const struct snd_pci_quirk alc269_fixup_tbl [] = {
@@ -7383,8 +7436,10 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
7383
7436
SND_PCI_QUIRK (0x1043 , 0x18b1 , "Asus MJ401TA" , ALC256_FIXUP_ASUS_HEADSET_MIC ),
7384
7437
SND_PCI_QUIRK (0x1043 , 0x18f1 , "Asus FX505DT" , ALC256_FIXUP_ASUS_HEADSET_MIC ),
7385
7438
SND_PCI_QUIRK (0x1043 , 0x19ce , "ASUS B9450FA" , ALC294_FIXUP_ASUS_HPE ),
7439
+ SND_PCI_QUIRK (0x1043 , 0x19e1 , "ASUS UX581LV" , ALC295_FIXUP_ASUS_MIC_NO_PRESENCE ),
7386
7440
SND_PCI_QUIRK (0x1043 , 0x1a13 , "Asus G73Jw" , ALC269_FIXUP_ASUS_G73JW ),
7387
7441
SND_PCI_QUIRK (0x1043 , 0x1a30 , "ASUS X705UD" , ALC256_FIXUP_ASUS_MIC ),
7442
+ SND_PCI_QUIRK (0x1043 , 0x1b11 , "ASUS UX431DA" , ALC294_FIXUP_ASUS_COEF_1B ),
7388
7443
SND_PCI_QUIRK (0x1043 , 0x1b13 , "Asus U41SV" , ALC269_FIXUP_INV_DMIC ),
7389
7444
SND_PCI_QUIRK (0x1043 , 0x1bbd , "ASUS Z550MA" , ALC255_FIXUP_ASUS_MIC_NO_PRESENCE ),
7390
7445
SND_PCI_QUIRK (0x1043 , 0x1c23 , "Asus X55U" , ALC269_FIXUP_LIMIT_INT_MIC_BOOST ),
@@ -7410,6 +7465,8 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
7410
7465
SND_PCI_QUIRK (0x10ec , 0x10f2 , "Intel Reference board" , ALC700_FIXUP_INTEL_REFERENCE ),
7411
7466
SND_PCI_QUIRK (0x10f7 , 0x8338 , "Panasonic CF-SZ6" , ALC269_FIXUP_HEADSET_MODE ),
7412
7467
SND_PCI_QUIRK (0x144d , 0xc109 , "Samsung Ativ book 9 (NP900X3G)" , ALC269_FIXUP_INV_DMIC ),
7468
+ SND_PCI_QUIRK (0x144d , 0xc169 , "Samsung Notebook 9 Pen (NP930SBE-K01US)" , ALC298_FIXUP_SAMSUNG_HEADPHONE_VERY_QUIET ),
7469
+ SND_PCI_QUIRK (0x144d , 0xc176 , "Samsung Notebook 9 Pro (NP930MBE-K04US)" , ALC298_FIXUP_SAMSUNG_HEADPHONE_VERY_QUIET ),
7413
7470
SND_PCI_QUIRK (0x144d , 0xc740 , "Samsung Ativ book 8 (NP870Z5G)" , ALC269_FIXUP_ATIV_BOOK_8 ),
7414
7471
SND_PCI_QUIRK (0x1458 , 0xfa53 , "Gigabyte BXBT-2807" , ALC283_FIXUP_HEADSET_MIC ),
7415
7472
SND_PCI_QUIRK (0x1462 , 0xb120 , "MSI Cubi MS-B120" , ALC283_FIXUP_HEADSET_MIC ),
@@ -7426,7 +7483,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
7426
7483
SND_PCI_QUIRK (0x17aa , 0x21b8 , "Thinkpad Edge 14" , ALC269_FIXUP_SKU_IGNORE ),
7427
7484
SND_PCI_QUIRK (0x17aa , 0x21ca , "Thinkpad L412" , ALC269_FIXUP_SKU_IGNORE ),
7428
7485
SND_PCI_QUIRK (0x17aa , 0x21e9 , "Thinkpad Edge 15" , ALC269_FIXUP_SKU_IGNORE ),
7429
- SND_PCI_QUIRK (0x17aa , 0x21f6 , "Thinkpad T530" , ALC269_FIXUP_LENOVO_DOCK ),
7486
+ SND_PCI_QUIRK (0x17aa , 0x21f6 , "Thinkpad T530" , ALC269_FIXUP_LENOVO_DOCK_LIMIT_BOOST ),
7430
7487
SND_PCI_QUIRK (0x17aa , 0x21fa , "Thinkpad X230" , ALC269_FIXUP_LENOVO_DOCK ),
7431
7488
SND_PCI_QUIRK (0x17aa , 0x21f3 , "Thinkpad T430" , ALC269_FIXUP_LENOVO_DOCK ),
7432
7489
SND_PCI_QUIRK (0x17aa , 0x21fb , "Thinkpad T430s" , ALC269_FIXUP_LENOVO_DOCK ),
@@ -7565,6 +7622,7 @@ static const struct hda_model_fixup alc269_fixup_models[] = {
7565
7622
{.id = ALC269_FIXUP_HEADSET_MODE , .name = "headset-mode" },
7566
7623
{.id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC , .name = "headset-mode-no-hp-mic" },
7567
7624
{.id = ALC269_FIXUP_LENOVO_DOCK , .name = "lenovo-dock" },
7625
+ {.id = ALC269_FIXUP_LENOVO_DOCK_LIMIT_BOOST , .name = "lenovo-dock-limit-boost" },
7568
7626
{.id = ALC269_FIXUP_HP_GPIO_LED , .name = "hp-gpio-led" },
7569
7627
{.id = ALC269_FIXUP_HP_DOCK_GPIO_MIC1_LED , .name = "hp-dock-gpio-mic1-led" },
7570
7628
{.id = ALC269_FIXUP_DELL1_MIC_NO_PRESENCE , .name = "dell-headset-multi" },
@@ -7993,6 +8051,18 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = {
7993
8051
{0x12 , 0x90a60130 },
7994
8052
{0x17 , 0x90170110 },
7995
8053
{0x21 , 0x03211020 }),
8054
+ SND_HDA_PIN_QUIRK (0x10ec0295 , 0x1043 , "ASUS" , ALC295_FIXUP_ASUS_MIC_NO_PRESENCE ,
8055
+ {0x12 , 0x90a60120 },
8056
+ {0x17 , 0x90170110 },
8057
+ {0x21 , 0x04211030 }),
8058
+ SND_HDA_PIN_QUIRK (0x10ec0295 , 0x1043 , "ASUS" , ALC295_FIXUP_ASUS_MIC_NO_PRESENCE ,
8059
+ {0x12 , 0x90a60130 },
8060
+ {0x17 , 0x90170110 },
8061
+ {0x21 , 0x03211020 }),
8062
+ SND_HDA_PIN_QUIRK (0x10ec0295 , 0x1043 , "ASUS" , ALC295_FIXUP_ASUS_MIC_NO_PRESENCE ,
8063
+ {0x12 , 0x90a60130 },
8064
+ {0x17 , 0x90170110 },
8065
+ {0x21 , 0x03211020 }),
7996
8066
SND_HDA_PIN_QUIRK (0x10ec0295 , 0x1028 , "Dell" , ALC269_FIXUP_DELL4_MIC_NO_PRESENCE ,
7997
8067
{0x14 , 0x90170110 },
7998
8068
{0x21 , 0x04211020 }),
@@ -8209,8 +8279,6 @@ static int patch_alc269(struct hda_codec *codec)
8209
8279
spec -> gen .mixer_nid = 0 ;
8210
8280
break ;
8211
8281
case 0x10ec0225 :
8212
- codec -> power_save_node = 1 ;
8213
- /* fall through */
8214
8282
case 0x10ec0295 :
8215
8283
case 0x10ec0299 :
8216
8284
spec -> codec_variant = ALC269_TYPE_ALC225 ;
0 commit comments