2016-04-11 09:21:53

by Sven Eckelmann

[permalink] [raw]
Subject: [PATCH v2] ALSA: hda/realtek - Enable the ALC292 dock fixup on the Thinkpad T460s

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 <[email protected]>
Tested-by: Simon Wunderlich <[email protected]>
---
v2:
- rebased on current master

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

diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index fefe83f..36d371c 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -4760,6 +4760,8 @@ enum {
ALC225_FIXUP_DELL1_MIC_NO_PRESENCE,
ALC280_FIXUP_HP_HEADSET_MIC,
ALC221_FIXUP_HP_FRONT_MIC,
+ ALC292_FIXUP_TPT460_DOCK,
+ ALC292_FIXUP_TPT460,
};

static const struct hda_fixup alc269_fixups[] = {
@@ -5409,6 +5411,18 @@ static const struct hda_fixup alc269_fixups[] = {
{ }
},
},
+ [ALC292_FIXUP_TPT460_DOCK] = {
+ .type = HDA_FIXUP_FUNC,
+ .v.func = alc_fixup_tpt440_dock,
+ .chained = true,
+ .chain_id = ALC269_FIXUP_THINKPAD_ACPI
+ },
+ [ALC292_FIXUP_TPT460] = {
+ .type = HDA_FIXUP_FUNC,
+ .v.func = alc_fixup_disable_aamix,
+ .chained = true,
+ .chain_id = ALC292_FIXUP_TPT460_DOCK,
+ },
};

static const struct snd_pci_quirk alc269_fixup_tbl[] = {
@@ -5563,7 +5577,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 +5672,8 @@ 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_DOCK, .name = "tpt460-dock"},
+ {.id = ALC292_FIXUP_TPT460, .name = "tpt460"},
{}
};
#define ALC225_STANDARD_PINS \
--
2.8.0.rc3


2016-04-11 14:05:55

by Takashi Iwai

[permalink] [raw]
Subject: Re: [PATCH v2] ALSA: hda/realtek - Enable the ALC292 dock fixup on the Thinkpad T460s

On Mon, 11 Apr 2016 11:21:38 +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 <[email protected]>
> Tested-by: Simon Wunderlich <[email protected]>
> ---
> v2:
> - rebased on current master
>
> sound/pci/hda/patch_realtek.c | 18 +++++++++++++++++-
> 1 file changed, 17 insertions(+), 1 deletion(-)
>
> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> index fefe83f..36d371c 100644
> --- a/sound/pci/hda/patch_realtek.c
> +++ b/sound/pci/hda/patch_realtek.c
> @@ -4760,6 +4760,8 @@ enum {
> ALC225_FIXUP_DELL1_MIC_NO_PRESENCE,
> ALC280_FIXUP_HP_HEADSET_MIC,
> ALC221_FIXUP_HP_FRONT_MIC,
> + ALC292_FIXUP_TPT460_DOCK,
> + ALC292_FIXUP_TPT460,
> };
>
> static const struct hda_fixup alc269_fixups[] = {
> @@ -5409,6 +5411,18 @@ static const struct hda_fixup alc269_fixups[] = {
> { }
> },
> },
> + [ALC292_FIXUP_TPT460_DOCK] = {
> + .type = HDA_FIXUP_FUNC,
> + .v.func = alc_fixup_tpt440_dock,
> + .chained = true,
> + .chain_id = ALC269_FIXUP_THINKPAD_ACPI
> + },
> + [ALC292_FIXUP_TPT460] = {
> + .type = HDA_FIXUP_FUNC,
> + .v.func = alc_fixup_disable_aamix,
> + .chained = true,
> + .chain_id = ALC292_FIXUP_TPT460_DOCK,
> + },

We don't need to add two entries but just one, something like below.

[ALC292_FIXUP_TPT460] = {
.type = HDA_FIXUP_FUNC,
.v.func = alc_fixup_tpt440_dock,
.chained = true,
.chain_id = ALC293_FIXUP_LENOVO_SPK_NOISE,
},

Does it work for you?


thanks,

Takashi

2016-04-11 14:43:46

by Sven Eckelmann

[permalink] [raw]
Subject: Re: [PATCH v2] ALSA: hda/realtek - Enable the ALC292 dock fixup on the Thinkpad T460s

On Monday 11 April 2016 16:05:49 Takashi Iwai wrote:
> On Mon, 11 Apr 2016 11:21:38 +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 <[email protected]>
> > Tested-by: Simon Wunderlich <[email protected]>
> > ---
> > v2:
> > - rebased on current master
> >
> > sound/pci/hda/patch_realtek.c | 18 +++++++++++++++++-
> > 1 file changed, 17 insertions(+), 1 deletion(-)
> >
> > diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> > index fefe83f..36d371c 100644
> > --- a/sound/pci/hda/patch_realtek.c
> > +++ b/sound/pci/hda/patch_realtek.c
> > @@ -4760,6 +4760,8 @@ enum {
> > ALC225_FIXUP_DELL1_MIC_NO_PRESENCE,
> > ALC280_FIXUP_HP_HEADSET_MIC,
> > ALC221_FIXUP_HP_FRONT_MIC,
> > + ALC292_FIXUP_TPT460_DOCK,
> > + ALC292_FIXUP_TPT460,
> > };
> >
> > static const struct hda_fixup alc269_fixups[] = {
> > @@ -5409,6 +5411,18 @@ static const struct hda_fixup alc269_fixups[] = {
> > { }
> > },
> > },
> > + [ALC292_FIXUP_TPT460_DOCK] = {
> > + .type = HDA_FIXUP_FUNC,
> > + .v.func = alc_fixup_tpt440_dock,
> > + .chained = true,
> > + .chain_id = ALC269_FIXUP_THINKPAD_ACPI
> > + },
> > + [ALC292_FIXUP_TPT460] = {
> > + .type = HDA_FIXUP_FUNC,
> > + .v.func = alc_fixup_disable_aamix,
> > + .chained = true,
> > + .chain_id = ALC292_FIXUP_TPT460_DOCK,
> > + },
>
> We don't need to add two entries but just one, something like below.
>
> [ALC292_FIXUP_TPT460] = {
> .type = HDA_FIXUP_FUNC,
> .v.func = alc_fixup_tpt440_dock,
> .chained = true,
> .chain_id = ALC293_FIXUP_LENOVO_SPK_NOISE,
> },

Just wanted to keep it consistent with the TPT440 entries.

Kind regards,
Sven


Attachments:
signature.asc (819.00 B)
This is a digitally signed message part.

2016-04-11 14:48:27

by Takashi Iwai

[permalink] [raw]
Subject: Re: [PATCH v2] ALSA: hda/realtek - Enable the ALC292 dock fixup on the Thinkpad T460s

On Mon, 11 Apr 2016 16:43:38 +0200,
Sven Eckelmann wrote:
>
> On Monday 11 April 2016 16:05:49 Takashi Iwai wrote:
> > On Mon, 11 Apr 2016 11:21:38 +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 <[email protected]>
> > > Tested-by: Simon Wunderlich <[email protected]>
> > > ---
> > > v2:
> > > - rebased on current master
> > >
> > > sound/pci/hda/patch_realtek.c | 18 +++++++++++++++++-
> > > 1 file changed, 17 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> > > index fefe83f..36d371c 100644
> > > --- a/sound/pci/hda/patch_realtek.c
> > > +++ b/sound/pci/hda/patch_realtek.c
> > > @@ -4760,6 +4760,8 @@ enum {
> > > ALC225_FIXUP_DELL1_MIC_NO_PRESENCE,
> > > ALC280_FIXUP_HP_HEADSET_MIC,
> > > ALC221_FIXUP_HP_FRONT_MIC,
> > > + ALC292_FIXUP_TPT460_DOCK,
> > > + ALC292_FIXUP_TPT460,
> > > };
> > >
> > > static const struct hda_fixup alc269_fixups[] = {
> > > @@ -5409,6 +5411,18 @@ static const struct hda_fixup alc269_fixups[] = {
> > > { }
> > > },
> > > },
> > > + [ALC292_FIXUP_TPT460_DOCK] = {
> > > + .type = HDA_FIXUP_FUNC,
> > > + .v.func = alc_fixup_tpt440_dock,
> > > + .chained = true,
> > > + .chain_id = ALC269_FIXUP_THINKPAD_ACPI
> > > + },
> > > + [ALC292_FIXUP_TPT460] = {
> > > + .type = HDA_FIXUP_FUNC,
> > > + .v.func = alc_fixup_disable_aamix,
> > > + .chained = true,
> > > + .chain_id = ALC292_FIXUP_TPT460_DOCK,
> > > + },
> >
> > We don't need to add two entries but just one, something like below.
> >
> > [ALC292_FIXUP_TPT460] = {
> > .type = HDA_FIXUP_FUNC,
> > .v.func = alc_fixup_tpt440_dock,
> > .chained = true,
> > .chain_id = ALC293_FIXUP_LENOVO_SPK_NOISE,
> > },
>
> Just wanted to keep it consistent with the TPT440 entries.

Oh, you don't have to inherit the messes from there :)
I'd rather like to keep the list shorter.


Takashi