@@ -6875,11 +6875,38 @@ static void alc287_fixup_legion_16ithg6_speakers(struct hda_codec *cdc, const st
6875
6875
comp_generic_fixup (cdc , action , "i2c" , "CLSA0101" , "-%s:00-cs35l41-hda.%d" , 2 );
6876
6876
}
6877
6877
6878
+ static void cs35l56_fixup_i2c_two (struct hda_codec * cdc , const struct hda_fixup * fix , int action )
6879
+ {
6880
+ comp_generic_fixup (cdc , action , "i2c" , "CSC3556" , "-%s:00-cs35l56-hda.%d" , 2 );
6881
+ }
6882
+
6883
+ static void cs35l56_fixup_i2c_four (struct hda_codec * cdc , const struct hda_fixup * fix , int action )
6884
+ {
6885
+ comp_generic_fixup (cdc , action , "i2c" , "CSC3556" , "-%s:00-cs35l56-hda.%d" , 4 );
6886
+ }
6887
+
6888
+ static void cs35l56_fixup_spi_two (struct hda_codec * cdc , const struct hda_fixup * fix , int action )
6889
+ {
6890
+ comp_generic_fixup (cdc , action , "spi" , "CSC3556" , "-%s:00-cs35l56-hda.%d" , 2 );
6891
+ }
6892
+
6878
6893
static void cs35l56_fixup_spi_four (struct hda_codec * cdc , const struct hda_fixup * fix , int action )
6879
6894
{
6880
6895
comp_generic_fixup (cdc , action , "spi" , "CSC3556" , "-%s:00-cs35l56-hda.%d" , 4 );
6881
6896
}
6882
6897
6898
+ static void alc285_fixup_asus_ga403u (struct hda_codec * cdc , const struct hda_fixup * fix , int action )
6899
+ {
6900
+ /*
6901
+ * The same SSID has been re-used in different hardware, they have
6902
+ * different codecs and the newer GA403U has a ALC285.
6903
+ */
6904
+ if (cdc -> core .vendor_id == 0x10ec0285 )
6905
+ cs35l56_fixup_i2c_two (cdc , fix , action );
6906
+ else
6907
+ alc_fixup_inv_dmic (cdc , fix , action );
6908
+ }
6909
+
6883
6910
static void tas2781_fixup_i2c (struct hda_codec * cdc ,
6884
6911
const struct hda_fixup * fix , int action )
6885
6912
{
@@ -7436,6 +7463,10 @@ enum {
7436
7463
ALC256_FIXUP_ACER_SFG16_MICMUTE_LED ,
7437
7464
ALC256_FIXUP_HEADPHONE_AMP_VOL ,
7438
7465
ALC245_FIXUP_HP_SPECTRE_X360_EU0XXX ,
7466
+ ALC285_FIXUP_CS35L56_SPI_2 ,
7467
+ ALC285_FIXUP_CS35L56_I2C_2 ,
7468
+ ALC285_FIXUP_CS35L56_I2C_4 ,
7469
+ ALC285_FIXUP_ASUS_GA403U ,
7439
7470
};
7440
7471
7441
7472
/* A special fixup for Lenovo C940 and Yoga Duet 7;
@@ -9643,6 +9674,22 @@ static const struct hda_fixup alc269_fixups[] = {
9643
9674
.type = HDA_FIXUP_FUNC ,
9644
9675
.v .func = alc245_fixup_hp_spectre_x360_eu0xxx ,
9645
9676
},
9677
+ [ALC285_FIXUP_CS35L56_SPI_2 ] = {
9678
+ .type = HDA_FIXUP_FUNC ,
9679
+ .v .func = cs35l56_fixup_spi_two ,
9680
+ },
9681
+ [ALC285_FIXUP_CS35L56_I2C_2 ] = {
9682
+ .type = HDA_FIXUP_FUNC ,
9683
+ .v .func = cs35l56_fixup_i2c_two ,
9684
+ },
9685
+ [ALC285_FIXUP_CS35L56_I2C_4 ] = {
9686
+ .type = HDA_FIXUP_FUNC ,
9687
+ .v .func = cs35l56_fixup_i2c_four ,
9688
+ },
9689
+ [ALC285_FIXUP_ASUS_GA403U ] = {
9690
+ .type = HDA_FIXUP_FUNC ,
9691
+ .v .func = alc285_fixup_asus_ga403u ,
9692
+ },
9646
9693
};
9647
9694
9648
9695
static const struct snd_pci_quirk alc269_fixup_tbl [] = {
@@ -10096,14 +10143,15 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
10096
10143
SND_PCI_QUIRK (0x1043 , 0x1a83 , "ASUS UM5302LA" , ALC294_FIXUP_CS35L41_I2C_2 ),
10097
10144
SND_PCI_QUIRK (0x1043 , 0x1a8f , "ASUS UX582ZS" , ALC245_FIXUP_CS35L41_SPI_2 ),
10098
10145
SND_PCI_QUIRK (0x1043 , 0x1b11 , "ASUS UX431DA" , ALC294_FIXUP_ASUS_COEF_1B ),
10099
- SND_PCI_QUIRK (0x1043 , 0x1b13 , "Asus U41SV" , ALC269_FIXUP_INV_DMIC ),
10146
+ SND_PCI_QUIRK (0x1043 , 0x1b13 , "ASUS U41SV/GA403U " , ALC285_FIXUP_ASUS_GA403U ),
10100
10147
SND_PCI_QUIRK (0x1043 , 0x1b93 , "ASUS G614JVR/JIR" , ALC245_FIXUP_CS35L41_SPI_2 ),
10101
10148
SND_PCI_QUIRK (0x1043 , 0x1bbd , "ASUS Z550MA" , ALC255_FIXUP_ASUS_MIC_NO_PRESENCE ),
10102
10149
SND_PCI_QUIRK (0x1043 , 0x1c03 , "ASUS UM3406HA" , ALC287_FIXUP_CS35L41_I2C_2 ),
10103
10150
SND_PCI_QUIRK (0x1043 , 0x1c23 , "Asus X55U" , ALC269_FIXUP_LIMIT_INT_MIC_BOOST ),
10104
10151
SND_PCI_QUIRK (0x1043 , 0x1c33 , "ASUS UX5304MA" , ALC245_FIXUP_CS35L41_SPI_2 ),
10105
10152
SND_PCI_QUIRK (0x1043 , 0x1c43 , "ASUS UX8406MA" , ALC245_FIXUP_CS35L41_SPI_2 ),
10106
10153
SND_PCI_QUIRK (0x1043 , 0x1c62 , "ASUS GU603" , ALC289_FIXUP_ASUS_GA401 ),
10154
+ SND_PCI_QUIRK (0x1043 , 0x1c63 , "ASUS GU605M" , ALC285_FIXUP_CS35L56_SPI_2 ),
10107
10155
SND_PCI_QUIRK (0x1043 , 0x1c92 , "ASUS ROG Strix G15" , ALC285_FIXUP_ASUS_G533Z_PINS ),
10108
10156
SND_PCI_QUIRK (0x1043 , 0x1c9f , "ASUS G614JU/JV/JI" , ALC285_FIXUP_ASUS_HEADSET_MIC ),
10109
10157
SND_PCI_QUIRK (0x1043 , 0x1caf , "ASUS G634JY/JZ/JI/JG" , ALC285_FIXUP_ASUS_SPI_REAR_SPEAKERS ),
@@ -10115,11 +10163,14 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
10115
10163
SND_PCI_QUIRK (0x1043 , 0x1d42 , "ASUS Zephyrus G14 2022" , ALC289_FIXUP_ASUS_GA401 ),
10116
10164
SND_PCI_QUIRK (0x1043 , 0x1d4e , "ASUS TM420" , ALC256_FIXUP_ASUS_HPE ),
10117
10165
SND_PCI_QUIRK (0x1043 , 0x1da2 , "ASUS UP6502ZA/ZD" , ALC245_FIXUP_CS35L41_SPI_2 ),
10166
+ SND_PCI_QUIRK (0x1043 , 0x1df3 , "ASUS UM5606" , ALC285_FIXUP_CS35L56_I2C_4 ),
10118
10167
SND_PCI_QUIRK (0x1043 , 0x1e02 , "ASUS UX3402ZA" , ALC245_FIXUP_CS35L41_SPI_2 ),
10119
10168
SND_PCI_QUIRK (0x1043 , 0x1e11 , "ASUS Zephyrus G15" , ALC289_FIXUP_ASUS_GA502 ),
10120
10169
SND_PCI_QUIRK (0x1043 , 0x1e12 , "ASUS UM3402" , ALC287_FIXUP_CS35L41_I2C_2 ),
10121
10170
SND_PCI_QUIRK (0x1043 , 0x1e51 , "ASUS Zephyrus M15" , ALC294_FIXUP_ASUS_GU502_PINS ),
10122
10171
SND_PCI_QUIRK (0x1043 , 0x1e5e , "ASUS ROG Strix G513" , ALC294_FIXUP_ASUS_G513_PINS ),
10172
+ SND_PCI_QUIRK (0x1043 , 0x1e63 , "ASUS H7606W" , ALC285_FIXUP_CS35L56_I2C_2 ),
10173
+ SND_PCI_QUIRK (0x1043 , 0x1e83 , "ASUS GA605W" , ALC285_FIXUP_CS35L56_I2C_2 ),
10123
10174
SND_PCI_QUIRK (0x1043 , 0x1e8e , "ASUS Zephyrus G15" , ALC289_FIXUP_ASUS_GA401 ),
10124
10175
SND_PCI_QUIRK (0x1043 , 0x1ee2 , "ASUS UM6702RA/RC" , ALC287_FIXUP_CS35L41_I2C_2 ),
10125
10176
SND_PCI_QUIRK (0x1043 , 0x1c52 , "ASUS Zephyrus G15 2022" , ALC289_FIXUP_ASUS_GA401 ),
@@ -10133,7 +10184,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
10133
10184
SND_PCI_QUIRK (0x1043 , 0x3a30 , "ASUS G814JVR/JIR" , ALC245_FIXUP_CS35L41_SPI_2 ),
10134
10185
SND_PCI_QUIRK (0x1043 , 0x3a40 , "ASUS G814JZR" , ALC245_FIXUP_CS35L41_SPI_2 ),
10135
10186
SND_PCI_QUIRK (0x1043 , 0x3a50 , "ASUS G834JYR/JZR" , ALC245_FIXUP_CS35L41_SPI_2 ),
10136
- SND_PCI_QUIRK (0x1043 , 0x3a60 , "ASUS G634JYR/JZR" , ALC245_FIXUP_CS35L41_SPI_2 ),
10187
+ SND_PCI_QUIRK (0x1043 , 0x3a60 , "ASUS G634JYR/JZR" , ALC285_FIXUP_ASUS_SPI_REAR_SPEAKERS ),
10137
10188
SND_PCI_QUIRK (0x1043 , 0x831a , "ASUS P901" , ALC269_FIXUP_STEREO_DMIC ),
10138
10189
SND_PCI_QUIRK (0x1043 , 0x834a , "ASUS S101" , ALC269_FIXUP_STEREO_DMIC ),
10139
10190
SND_PCI_QUIRK (0x1043 , 0x8398 , "ASUS P1005" , ALC269_FIXUP_STEREO_DMIC ),
@@ -10159,7 +10210,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
10159
10210
SND_PCI_QUIRK (0x10ec , 0x1254 , "Intel Reference board" , ALC295_FIXUP_CHROME_BOOK ),
10160
10211
SND_PCI_QUIRK (0x10ec , 0x12cc , "Intel Reference board" , ALC295_FIXUP_CHROME_BOOK ),
10161
10212
SND_PCI_QUIRK (0x10ec , 0x12f6 , "Intel Reference board" , ALC295_FIXUP_CHROME_BOOK ),
10162
- SND_PCI_QUIRK (0x10f7 , 0x8338 , "Panasonic CF-SZ6" , ALC269_FIXUP_HEADSET_MODE ),
10213
+ SND_PCI_QUIRK (0x10f7 , 0x8338 , "Panasonic CF-SZ6" , ALC269_FIXUP_ASPIRE_HEADSET_MIC ),
10163
10214
SND_PCI_QUIRK (0x144d , 0xc109 , "Samsung Ativ book 9 (NP900X3G)" , ALC269_FIXUP_INV_DMIC ),
10164
10215
SND_PCI_QUIRK (0x144d , 0xc169 , "Samsung Notebook 9 Pen (NP930SBE-K01US)" , ALC298_FIXUP_SAMSUNG_AMP ),
10165
10216
SND_PCI_QUIRK (0x144d , 0xc176 , "Samsung Notebook 9 Pro (NP930MBE-K04US)" , ALC298_FIXUP_SAMSUNG_AMP ),
@@ -10333,6 +10384,8 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
10333
10384
SND_PCI_QUIRK (0x17aa , 0x3869 , "Lenovo Yoga7 14IAL7" , ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN ),
10334
10385
SND_PCI_QUIRK (0x17aa , 0x386f , "Legion 7i 16IAX7" , ALC287_FIXUP_CS35L41_I2C_2 ),
10335
10386
SND_PCI_QUIRK (0x17aa , 0x3870 , "Lenovo Yoga 7 14ARB7" , ALC287_FIXUP_YOGA7_14ARB7_I2C ),
10387
+ SND_PCI_QUIRK (0x17aa , 0x3877 , "Lenovo Legion 7 Slim 16ARHA7" , ALC287_FIXUP_CS35L41_I2C_2 ),
10388
+ SND_PCI_QUIRK (0x17aa , 0x3878 , "Lenovo Legion 7 Slim 16ARHA7" , ALC287_FIXUP_CS35L41_I2C_2 ),
10336
10389
SND_PCI_QUIRK (0x17aa , 0x387d , "Yoga S780-16 pro Quad AAC" , ALC287_FIXUP_TAS2781_I2C ),
10337
10390
SND_PCI_QUIRK (0x17aa , 0x387e , "Yoga S780-16 pro Quad YC" , ALC287_FIXUP_TAS2781_I2C ),
10338
10391
SND_PCI_QUIRK (0x17aa , 0x3881 , "YB9 dual power mode2 YC" , ALC287_FIXUP_TAS2781_I2C ),
@@ -10403,6 +10456,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
10403
10456
SND_PCI_QUIRK (0x1d05 , 0x1147 , "TongFang GMxTGxx" , ALC269_FIXUP_NO_SHUTUP ),
10404
10457
SND_PCI_QUIRK (0x1d05 , 0x115c , "TongFang GMxTGxx" , ALC269_FIXUP_NO_SHUTUP ),
10405
10458
SND_PCI_QUIRK (0x1d05 , 0x121b , "TongFang GMxAGxx" , ALC269_FIXUP_NO_SHUTUP ),
10459
+ SND_PCI_QUIRK (0x1d05 , 0x1387 , "TongFang GMxIXxx" , ALC2XX_FIXUP_HEADSET_MIC ),
10406
10460
SND_PCI_QUIRK (0x1d72 , 0x1602 , "RedmiBook" , ALC255_FIXUP_XIAOMI_HEADSET_MIC ),
10407
10461
SND_PCI_QUIRK (0x1d72 , 0x1701 , "XiaomiNotebook Pro" , ALC298_FIXUP_DELL1_MIC_NO_PRESENCE ),
10408
10462
SND_PCI_QUIRK (0x1d72 , 0x1901 , "RedmiBook 14" , ALC256_FIXUP_ASUS_HEADSET_MIC ),
0 commit comments