| From b590b38ca305d6d7902ec7c4f7e273e0069f3bcc Mon Sep 17 00:00:00 2001 |
| From: Takashi Iwai <tiwai@suse.de> |
| Date: Thu, 14 May 2020 18:05:33 +0200 |
| Subject: ALSA: hda/realtek - Limit int mic boost for Thinkpad T530 |
| |
| From: Takashi Iwai <tiwai@suse.de> |
| |
| commit b590b38ca305d6d7902ec7c4f7e273e0069f3bcc upstream. |
| |
| Lenovo Thinkpad T530 seems to have a sensitive internal mic capture |
| that needs to limit the mic boost like a few other Thinkpad models. |
| Although we may change the quirk for ALC269_FIXUP_LENOVO_DOCK, this |
| hits way too many other laptop models, so let's add a new fixup model |
| that limits the internal mic boost on top of the existing quirk and |
| apply to only T530. |
| |
| BugLink: https://bugzilla.suse.com/show_bug.cgi?id=1171293 |
| Cc: <stable@vger.kernel.org> |
| Link: https://lore.kernel.org/r/20200514160533.10337-1-tiwai@suse.de |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| sound/pci/hda/patch_realtek.c | 10 +++++++++- |
| 1 file changed, 9 insertions(+), 1 deletion(-) |
| |
| --- a/sound/pci/hda/patch_realtek.c |
| +++ b/sound/pci/hda/patch_realtek.c |
| @@ -5856,6 +5856,7 @@ enum { |
| ALC269_FIXUP_HP_LINE1_MIC1_LED, |
| ALC269_FIXUP_INV_DMIC, |
| ALC269_FIXUP_LENOVO_DOCK, |
| + ALC269_FIXUP_LENOVO_DOCK_LIMIT_BOOST, |
| ALC269_FIXUP_NO_SHUTUP, |
| ALC286_FIXUP_SONY_MIC_NO_PRESENCE, |
| ALC269_FIXUP_PINCFG_NO_HP_TO_LINEOUT, |
| @@ -6175,6 +6176,12 @@ static const struct hda_fixup alc269_fix |
| .chained = true, |
| .chain_id = ALC269_FIXUP_PINCFG_NO_HP_TO_LINEOUT |
| }, |
| + [ALC269_FIXUP_LENOVO_DOCK_LIMIT_BOOST] = { |
| + .type = HDA_FIXUP_FUNC, |
| + .v.func = alc269_fixup_limit_int_mic_boost, |
| + .chained = true, |
| + .chain_id = ALC269_FIXUP_LENOVO_DOCK, |
| + }, |
| [ALC269_FIXUP_PINCFG_NO_HP_TO_LINEOUT] = { |
| .type = HDA_FIXUP_FUNC, |
| .v.func = alc269_fixup_pincfg_no_hp_to_lineout, |
| @@ -7317,7 +7324,7 @@ static const struct snd_pci_quirk alc269 |
| SND_PCI_QUIRK(0x17aa, 0x21b8, "Thinkpad Edge 14", ALC269_FIXUP_SKU_IGNORE), |
| SND_PCI_QUIRK(0x17aa, 0x21ca, "Thinkpad L412", ALC269_FIXUP_SKU_IGNORE), |
| SND_PCI_QUIRK(0x17aa, 0x21e9, "Thinkpad Edge 15", ALC269_FIXUP_SKU_IGNORE), |
| - SND_PCI_QUIRK(0x17aa, 0x21f6, "Thinkpad T530", ALC269_FIXUP_LENOVO_DOCK), |
| + SND_PCI_QUIRK(0x17aa, 0x21f6, "Thinkpad T530", ALC269_FIXUP_LENOVO_DOCK_LIMIT_BOOST), |
| SND_PCI_QUIRK(0x17aa, 0x21fa, "Thinkpad X230", ALC269_FIXUP_LENOVO_DOCK), |
| SND_PCI_QUIRK(0x17aa, 0x21f3, "Thinkpad T430", ALC269_FIXUP_LENOVO_DOCK), |
| SND_PCI_QUIRK(0x17aa, 0x21fb, "Thinkpad T430s", ALC269_FIXUP_LENOVO_DOCK), |
| @@ -7456,6 +7463,7 @@ static const struct hda_model_fixup alc2 |
| {.id = ALC269_FIXUP_HEADSET_MODE, .name = "headset-mode"}, |
| {.id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC, .name = "headset-mode-no-hp-mic"}, |
| {.id = ALC269_FIXUP_LENOVO_DOCK, .name = "lenovo-dock"}, |
| + {.id = ALC269_FIXUP_LENOVO_DOCK_LIMIT_BOOST, .name = "lenovo-dock-limit-boost"}, |
| {.id = ALC269_FIXUP_HP_GPIO_LED, .name = "hp-gpio-led"}, |
| {.id = ALC269_FIXUP_HP_DOCK_GPIO_MIC1_LED, .name = "hp-dock-gpio-mic1-led"}, |
| {.id = ALC269_FIXUP_DELL1_MIC_NO_PRESENCE, .name = "dell-headset-multi"}, |