ALSA: hda/realtek - Enable the ALC292 dock fixup on the Thinkpad T460s
diff mbox

Message ID 1460386526-17256-1-git-send-email-sven@narfation.org
State New
Headers show

Commit Message

Sven Eckelmann April 11, 2016, 2:55 p.m. UTC
The Lenovo Thinkpad T460s requires the alc_fixup_tpt440_dock as well in
order to get working sound output on the docking stations headphone jack.

Patch tested on a Thinkpad T460s (20F9CT01WW) using a ThinkPad Ultradock
on kernel 4.4.6.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
Tested-by: Simon Wunderlich <sw@simonwunderlich.de>
---
v3:
 - Removed ALC292_FIXUP_TPT460_DOCK
v2:
 - rebased on current master

 sound/pci/hda/patch_realtek.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

Comments

Takashi Iwai April 11, 2016, 3:14 p.m. UTC | #1
On Mon, 11 Apr 2016 16:55:26 +0200,
Sven Eckelmann wrote:
> 
> The Lenovo Thinkpad T460s requires the alc_fixup_tpt440_dock as well in
> order to get working sound output on the docking stations headphone jack.
> 
> Patch tested on a Thinkpad T460s (20F9CT01WW) using a ThinkPad Ultradock
> on kernel 4.4.6.
> 
> Signed-off-by: Sven Eckelmann <sven@narfation.org>
> Tested-by: Simon Wunderlich <sw@simonwunderlich.de>
> ---
> v3:
>  - Removed ALC292_FIXUP_TPT460_DOCK
> v2:
>  - rebased on current master

Applied, thanks.


Takashi

> 
>  sound/pci/hda/patch_realtek.c | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> index fefe83f..1402ba9 100644
> --- a/sound/pci/hda/patch_realtek.c
> +++ b/sound/pci/hda/patch_realtek.c
> @@ -4760,6 +4760,7 @@ enum {
>  	ALC225_FIXUP_DELL1_MIC_NO_PRESENCE,
>  	ALC280_FIXUP_HP_HEADSET_MIC,
>  	ALC221_FIXUP_HP_FRONT_MIC,
> +	ALC292_FIXUP_TPT460,
>  };
>  
>  static const struct hda_fixup alc269_fixups[] = {
> @@ -5409,6 +5410,12 @@ static const struct hda_fixup alc269_fixups[] = {
>  			{ }
>  		},
>  	},
> +	[ALC292_FIXUP_TPT460] = {
> +		.type = HDA_FIXUP_FUNC,
> +		.v.func = alc_fixup_tpt440_dock,
> +		.chained = true,
> +		.chain_id = ALC293_FIXUP_LENOVO_SPK_NOISE,
> +	},
>  };
>  
>  static const struct snd_pci_quirk alc269_fixup_tbl[] = {
> @@ -5563,7 +5570,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
>  	SND_PCI_QUIRK(0x17aa, 0x2218, "Thinkpad X1 Carbon 2nd", ALC292_FIXUP_TPT440_DOCK),
>  	SND_PCI_QUIRK(0x17aa, 0x2223, "ThinkPad T550", ALC292_FIXUP_TPT440_DOCK),
>  	SND_PCI_QUIRK(0x17aa, 0x2226, "ThinkPad X250", ALC292_FIXUP_TPT440_DOCK),
> -	SND_PCI_QUIRK(0x17aa, 0x2233, "Thinkpad", ALC293_FIXUP_LENOVO_SPK_NOISE),
> +	SND_PCI_QUIRK(0x17aa, 0x2233, "Thinkpad", ALC292_FIXUP_TPT460),
>  	SND_PCI_QUIRK(0x17aa, 0x30bb, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY),
>  	SND_PCI_QUIRK(0x17aa, 0x30e2, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY),
>  	SND_PCI_QUIRK(0x17aa, 0x3902, "Lenovo E50-80", ALC269_FIXUP_DMIC_THINKPAD_ACPI),
> @@ -5658,6 +5665,7 @@ static const struct hda_model_fixup alc269_fixup_models[] = {
>  	{.id = ALC283_FIXUP_SENSE_COMBO_JACK, .name = "alc283-sense-combo"},
>  	{.id = ALC292_FIXUP_TPT440_DOCK, .name = "tpt440-dock"},
>  	{.id = ALC292_FIXUP_TPT440, .name = "tpt440"},
> +	{.id = ALC292_FIXUP_TPT460, .name = "tpt460"},
>  	{}
>  };
>  #define ALC225_STANDARD_PINS \
>

Patch
diff mbox

diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index fefe83f..1402ba9 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -4760,6 +4760,7 @@  enum {
 	ALC225_FIXUP_DELL1_MIC_NO_PRESENCE,
 	ALC280_FIXUP_HP_HEADSET_MIC,
 	ALC221_FIXUP_HP_FRONT_MIC,
+	ALC292_FIXUP_TPT460,
 };
 
 static const struct hda_fixup alc269_fixups[] = {
@@ -5409,6 +5410,12 @@  static const struct hda_fixup alc269_fixups[] = {
 			{ }
 		},
 	},
+	[ALC292_FIXUP_TPT460] = {
+		.type = HDA_FIXUP_FUNC,
+		.v.func = alc_fixup_tpt440_dock,
+		.chained = true,
+		.chain_id = ALC293_FIXUP_LENOVO_SPK_NOISE,
+	},
 };
 
 static const struct snd_pci_quirk alc269_fixup_tbl[] = {
@@ -5563,7 +5570,7 @@  static const struct snd_pci_quirk alc269_fixup_tbl[] = {
 	SND_PCI_QUIRK(0x17aa, 0x2218, "Thinkpad X1 Carbon 2nd", ALC292_FIXUP_TPT440_DOCK),
 	SND_PCI_QUIRK(0x17aa, 0x2223, "ThinkPad T550", ALC292_FIXUP_TPT440_DOCK),
 	SND_PCI_QUIRK(0x17aa, 0x2226, "ThinkPad X250", ALC292_FIXUP_TPT440_DOCK),
-	SND_PCI_QUIRK(0x17aa, 0x2233, "Thinkpad", ALC293_FIXUP_LENOVO_SPK_NOISE),
+	SND_PCI_QUIRK(0x17aa, 0x2233, "Thinkpad", ALC292_FIXUP_TPT460),
 	SND_PCI_QUIRK(0x17aa, 0x30bb, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY),
 	SND_PCI_QUIRK(0x17aa, 0x30e2, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY),
 	SND_PCI_QUIRK(0x17aa, 0x3902, "Lenovo E50-80", ALC269_FIXUP_DMIC_THINKPAD_ACPI),
@@ -5658,6 +5665,7 @@  static const struct hda_model_fixup alc269_fixup_models[] = {
 	{.id = ALC283_FIXUP_SENSE_COMBO_JACK, .name = "alc283-sense-combo"},
 	{.id = ALC292_FIXUP_TPT440_DOCK, .name = "tpt440-dock"},
 	{.id = ALC292_FIXUP_TPT440, .name = "tpt440"},
+	{.id = ALC292_FIXUP_TPT460, .name = "tpt460"},
 	{}
 };
 #define ALC225_STANDARD_PINS \