diff options
Diffstat (limited to 'sound/pci/hda/patch_realtek.c')
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index a75b5611d1e4..afec6dc9f91f 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -4188,6 +4188,24 @@ static void alc_fixup_disable_aamix(struct hda_codec *codec, | |||
4188 | } | 4188 | } |
4189 | } | 4189 | } |
4190 | 4190 | ||
4191 | /* fixup for Thinkpad docks: add dock pins, avoid HP parser fixup */ | ||
4192 | static void alc_fixup_tpt440_dock(struct hda_codec *codec, | ||
4193 | const struct hda_fixup *fix, int action) | ||
4194 | { | ||
4195 | static const struct hda_pintbl pincfgs[] = { | ||
4196 | { 0x16, 0x21211010 }, /* dock headphone */ | ||
4197 | { 0x19, 0x21a11010 }, /* dock mic */ | ||
4198 | { } | ||
4199 | }; | ||
4200 | struct alc_spec *spec = codec->spec; | ||
4201 | |||
4202 | if (action == HDA_FIXUP_ACT_PRE_PROBE) { | ||
4203 | spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP; | ||
4204 | codec->power_save_node = 0; /* avoid click noises */ | ||
4205 | snd_hda_apply_pincfgs(codec, pincfgs); | ||
4206 | } | ||
4207 | } | ||
4208 | |||
4191 | static void alc_shutup_dell_xps13(struct hda_codec *codec) | 4209 | static void alc_shutup_dell_xps13(struct hda_codec *codec) |
4192 | { | 4210 | { |
4193 | struct alc_spec *spec = codec->spec; | 4211 | struct alc_spec *spec = codec->spec; |
@@ -4562,7 +4580,6 @@ enum { | |||
4562 | ALC255_FIXUP_HEADSET_MODE_NO_HP_MIC, | 4580 | ALC255_FIXUP_HEADSET_MODE_NO_HP_MIC, |
4563 | ALC293_FIXUP_DELL1_MIC_NO_PRESENCE, | 4581 | ALC293_FIXUP_DELL1_MIC_NO_PRESENCE, |
4564 | ALC292_FIXUP_TPT440_DOCK, | 4582 | ALC292_FIXUP_TPT440_DOCK, |
4565 | ALC292_FIXUP_TPT440_DOCK2, | ||
4566 | ALC283_FIXUP_BXBT2807_MIC, | 4583 | ALC283_FIXUP_BXBT2807_MIC, |
4567 | ALC255_FIXUP_DELL_WMI_MIC_MUTE_LED, | 4584 | ALC255_FIXUP_DELL_WMI_MIC_MUTE_LED, |
4568 | ALC282_FIXUP_ASPIRE_V5_PINS, | 4585 | ALC282_FIXUP_ASPIRE_V5_PINS, |
@@ -5029,17 +5046,7 @@ static const struct hda_fixup alc269_fixups[] = { | |||
5029 | }, | 5046 | }, |
5030 | [ALC292_FIXUP_TPT440_DOCK] = { | 5047 | [ALC292_FIXUP_TPT440_DOCK] = { |
5031 | .type = HDA_FIXUP_FUNC, | 5048 | .type = HDA_FIXUP_FUNC, |
5032 | .v.func = alc269_fixup_pincfg_no_hp_to_lineout, | 5049 | .v.func = alc_fixup_tpt440_dock, |
5033 | .chained = true, | ||
5034 | .chain_id = ALC292_FIXUP_TPT440_DOCK2 | ||
5035 | }, | ||
5036 | [ALC292_FIXUP_TPT440_DOCK2] = { | ||
5037 | .type = HDA_FIXUP_PINS, | ||
5038 | .v.pins = (const struct hda_pintbl[]) { | ||
5039 | { 0x16, 0x21211010 }, /* dock headphone */ | ||
5040 | { 0x19, 0x21a11010 }, /* dock mic */ | ||
5041 | { } | ||
5042 | }, | ||
5043 | .chained = true, | 5050 | .chained = true, |
5044 | .chain_id = ALC269_FIXUP_LIMIT_INT_MIC_BOOST | 5051 | .chain_id = ALC269_FIXUP_LIMIT_INT_MIC_BOOST |
5045 | }, | 5052 | }, |