|
@@ -1782,6 +1782,8 @@ enum {
|
|
|
ALC889_FIXUP_IMAC91_VREF,
|
|
|
ALC882_FIXUP_INV_DMIC,
|
|
|
ALC882_FIXUP_NO_PRIMARY_HP,
|
|
|
+ ALC887_FIXUP_ASUS_BASS,
|
|
|
+ ALC887_FIXUP_BASS_CHMAP,
|
|
|
};
|
|
|
|
|
|
static void alc889_fixup_coef(struct hda_codec *codec,
|
|
@@ -1915,6 +1917,9 @@ static void alc882_fixup_no_primary_hp(struct hda_codec *codec,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+static void alc_fixup_bass_chmap(struct hda_codec *codec,
|
|
|
+ const struct hda_fixup *fix, int action);
|
|
|
+
|
|
|
static const struct hda_fixup alc882_fixups[] = {
|
|
|
[ALC882_FIXUP_ABIT_AW9D_MAX] = {
|
|
|
.type = HDA_FIXUP_PINS,
|
|
@@ -2105,6 +2110,19 @@ static const struct hda_fixup alc882_fixups[] = {
|
|
|
.type = HDA_FIXUP_FUNC,
|
|
|
.v.func = alc882_fixup_no_primary_hp,
|
|
|
},
|
|
|
+ [ALC887_FIXUP_ASUS_BASS] = {
|
|
|
+ .type = HDA_FIXUP_PINS,
|
|
|
+ .v.pins = (const struct hda_pintbl[]) {
|
|
|
+ {0x16, 0x99130130}, /* bass speaker */
|
|
|
+ {}
|
|
|
+ },
|
|
|
+ .chained = true,
|
|
|
+ .chain_id = ALC887_FIXUP_BASS_CHMAP,
|
|
|
+ },
|
|
|
+ [ALC887_FIXUP_BASS_CHMAP] = {
|
|
|
+ .type = HDA_FIXUP_FUNC,
|
|
|
+ .v.func = alc_fixup_bass_chmap,
|
|
|
+ },
|
|
|
};
|
|
|
|
|
|
static const struct snd_pci_quirk alc882_fixup_tbl[] = {
|
|
@@ -2138,6 +2156,7 @@ static const struct snd_pci_quirk alc882_fixup_tbl[] = {
|
|
|
SND_PCI_QUIRK(0x1043, 0x1873, "ASUS W90V", ALC882_FIXUP_ASUS_W90V),
|
|
|
SND_PCI_QUIRK(0x1043, 0x1971, "Asus W2JC", ALC882_FIXUP_ASUS_W2JC),
|
|
|
SND_PCI_QUIRK(0x1043, 0x835f, "Asus Eee 1601", ALC888_FIXUP_EEE1601),
|
|
|
+ SND_PCI_QUIRK(0x1043, 0x84bc, "ASUS ET2700", ALC887_FIXUP_ASUS_BASS),
|
|
|
SND_PCI_QUIRK(0x104d, 0x9047, "Sony Vaio TT", ALC889_FIXUP_VAIO_TT),
|
|
|
SND_PCI_QUIRK(0x104d, 0x905a, "Sony Vaio Z", ALC882_FIXUP_NO_PRIMARY_HP),
|
|
|
SND_PCI_QUIRK(0x104d, 0x9043, "Sony Vaio VGC-LN51JGB", ALC882_FIXUP_NO_PRIMARY_HP),
|
|
@@ -3798,6 +3817,7 @@ enum {
|
|
|
ALC271_FIXUP_HP_GATE_MIC_JACK,
|
|
|
ALC269_FIXUP_ACER_AC700,
|
|
|
ALC269_FIXUP_LIMIT_INT_MIC_BOOST,
|
|
|
+ ALC269VB_FIXUP_ASUS_ZENBOOK,
|
|
|
ALC269_FIXUP_LIMIT_INT_MIC_BOOST_MUTE_LED,
|
|
|
ALC269VB_FIXUP_ORDISSIMO_EVE2,
|
|
|
ALC283_FIXUP_CHROME_BOOK,
|
|
@@ -4075,6 +4095,12 @@ static const struct hda_fixup alc269_fixups[] = {
|
|
|
.chained = true,
|
|
|
.chain_id = ALC269_FIXUP_THINKPAD_ACPI,
|
|
|
},
|
|
|
+ [ALC269VB_FIXUP_ASUS_ZENBOOK] = {
|
|
|
+ .type = HDA_FIXUP_FUNC,
|
|
|
+ .v.func = alc269_fixup_limit_int_mic_boost,
|
|
|
+ .chained = true,
|
|
|
+ .chain_id = ALC269VB_FIXUP_DMIC,
|
|
|
+ },
|
|
|
[ALC269_FIXUP_LIMIT_INT_MIC_BOOST_MUTE_LED] = {
|
|
|
.type = HDA_FIXUP_FUNC,
|
|
|
.v.func = alc269_fixup_limit_int_mic_boost,
|
|
@@ -4189,8 +4215,8 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
|
|
|
SND_PCI_QUIRK(0x1043, 0x103f, "ASUS TX300", ALC282_FIXUP_ASUS_TX300),
|
|
|
SND_PCI_QUIRK(0x1043, 0x106d, "Asus K53BE", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
|
|
|
SND_PCI_QUIRK(0x1043, 0x115d, "Asus 1015E", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
|
|
|
- SND_PCI_QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_DMIC),
|
|
|
- SND_PCI_QUIRK(0x1043, 0x1517, "Asus Zenbook UX31A", ALC269VB_FIXUP_DMIC),
|
|
|
+ SND_PCI_QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_ASUS_ZENBOOK),
|
|
|
+ SND_PCI_QUIRK(0x1043, 0x1517, "Asus Zenbook UX31A", ALC269VB_FIXUP_ASUS_ZENBOOK),
|
|
|
SND_PCI_QUIRK(0x1043, 0x16e3, "ASUS UX50", ALC269_FIXUP_STEREO_DMIC),
|
|
|
SND_PCI_QUIRK(0x1043, 0x1a13, "Asus G73Jw", ALC269_FIXUP_ASUS_G73JW),
|
|
|
SND_PCI_QUIRK(0x1043, 0x1b13, "Asus U41SV", ALC269_FIXUP_INV_DMIC),
|
|
@@ -4715,7 +4741,7 @@ static const struct snd_pcm_chmap_elem asus_pcm_2_1_chmaps[] = {
|
|
|
};
|
|
|
|
|
|
/* override the 2.1 chmap */
|
|
|
-static void alc662_fixup_bass_chmap(struct hda_codec *codec,
|
|
|
+static void alc_fixup_bass_chmap(struct hda_codec *codec,
|
|
|
const struct hda_fixup *fix, int action)
|
|
|
{
|
|
|
if (action == HDA_FIXUP_ACT_BUILD) {
|
|
@@ -4923,7 +4949,7 @@ static const struct hda_fixup alc662_fixups[] = {
|
|
|
},
|
|
|
[ALC662_FIXUP_BASS_CHMAP] = {
|
|
|
.type = HDA_FIXUP_FUNC,
|
|
|
- .v.func = alc662_fixup_bass_chmap,
|
|
|
+ .v.func = alc_fixup_bass_chmap,
|
|
|
.chained = true,
|
|
|
.chain_id = ALC662_FIXUP_ASUS_MODE4
|
|
|
},
|
|
@@ -4936,7 +4962,7 @@ static const struct hda_fixup alc662_fixups[] = {
|
|
|
},
|
|
|
[ALC662_FIXUP_BASS_1A_CHMAP] = {
|
|
|
.type = HDA_FIXUP_FUNC,
|
|
|
- .v.func = alc662_fixup_bass_chmap,
|
|
|
+ .v.func = alc_fixup_bass_chmap,
|
|
|
.chained = true,
|
|
|
.chain_id = ALC662_FIXUP_BASS_1A,
|
|
|
},
|
|
@@ -5118,6 +5144,7 @@ static int patch_alc662(struct hda_codec *codec)
|
|
|
case 0x10ec0272:
|
|
|
case 0x10ec0663:
|
|
|
case 0x10ec0665:
|
|
|
+ case 0x10ec0668:
|
|
|
set_beep_amp(spec, 0x0b, 0x04, HDA_INPUT);
|
|
|
break;
|
|
|
case 0x10ec0273:
|
|
@@ -5175,6 +5202,7 @@ static int patch_alc680(struct hda_codec *codec)
|
|
|
*/
|
|
|
static const struct hda_codec_preset snd_hda_preset_realtek[] = {
|
|
|
{ .id = 0x10ec0221, .name = "ALC221", .patch = patch_alc269 },
|
|
|
+ { .id = 0x10ec0231, .name = "ALC231", .patch = patch_alc269 },
|
|
|
{ .id = 0x10ec0233, .name = "ALC233", .patch = patch_alc269 },
|
|
|
{ .id = 0x10ec0255, .name = "ALC255", .patch = patch_alc269 },
|
|
|
{ .id = 0x10ec0260, .name = "ALC260", .patch = patch_alc260 },
|