[alsa-devel] No sound on Thinkpad T440s in Docking Station
Takashi Iwai
tiwai at suse.de
Tue May 6 11:46:27 CEST 2014
At Fri, 02 May 2014 15:59:55 +0200,
Joschi Brauchle wrote:
>
>
>
> On 05/02/2014 11:27 AM, Joschi Brauchle wrote:
> > On 05/02/2014 11:02 AM, Joschi Brauchle wrote:
> >>
> >>
> >> On 05/02/2014 10:21 AM, Takashi Iwai wrote:
> >>> At Fri, 02 May 2014 10:16:10 +0200,
> >>> Joschi Brauchle wrote:
> >>>>
> >>>> On 05/02/2014 09:31 AM, Takashi Iwai wrote:
> >>>>> At Wed, 30 Apr 2014 19:05:24 +0200,
> >>>>> Joschi Brauchle wrote:
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> On 04/30/2014 06:43 PM, Takashi Iwai wrote:
> >>>>>>> At Wed, 30 Apr 2014 10:56:48 +0200,
> >>>>>>> Joschi Brauchle wrote:
> >>>>>>>>
> >>>>>>>> Dear all,
> >>>>>>>>
> >>>>>>>> using openSUSE 13.1 on an Thinkpad T440s, I am not getting sound
> >>>>>>>> once
> >>>>>>>> the laptop is docked to its docking station.
> >>>>>>>>
> >>>>>>>> I suspect an additional SND_PCI_QUIRK is needed for this model.
> >>>>>>>> "pactl list" returns
> >>>>>>>> ----------------
> >>>>>>>> alsa.mixer_name = "Realtek ALC292"
> >>>>>>>> alsa.components = "HDA:10ec0292,17aa220c,00100001"
> >>>>>>>> ----------------
> >>>>>>>> for the analog audio output sink in docked state.
> >>>>>>>>
> >>>>>>>> Hence I assume a new line *similar* to this
> >>>>>>>> ----------------
> >>>>>>>> SND_PCI_QUIRK(0x17aa, 0x220c, "Thinkpad T440s",
> >>>>>>>> ALC269_FIXUP_LENOVO_DOCK),
> >>>>>>>> ----------------
> >>>>>>>> is needed?
> >>>>>>>> What about the ALC292 instead of 269 Realtek chip...?
> >>>>>>>
> >>>>>>> It's a compatible chip, so the codec name doesn't matter.
> >>>>>>> You can try it with model=lenovo-dock option with the recent
> >>>>>>> kernels.
> >>>>>>> For Haswell, it's safer to pass twice
> >>>>>>> (model=lenovo-dock,lenovo-dock).
> >>>>>>>
> >>>>>>> Let us know if this works for you.
> >>>>>>>
> >>>>>>>
> >>>>>>> Takashi
> >>>>>>>
> >>>>>> Hi Takashi,
> >>>>>>
> >>>>>> so i have:
> >>>>>> ------------------ /etc/modprobe.d/50-sound.conf -------------------
> >>>>>>
> >>>>>> options snd-hda-intel model=lenovo-dock,lenovo-dock
> >>>>>> options snd slots=snd-hda-intel,snd-hda-intel
> >>>>>> # 3hqH.vsazS+ZIdb9:Intel Corporation
> >>>>>> alias snd-card-0 snd-hda-intel
> >>>>>> # u1Nb.8dI5aUgInHB:Intel Corporation
> >>>>>> alias snd-card-1 snd-hda-intel
> >>>>>> ------------------
> >>>>>> and rebooted, but still get no sound from the headphone jack on the
> >>>>>> dock, although the built-in speakers immediately mute when
> >>>>>> plugging in
> >>>>>> headphones.
> >>>>>
> >>>>> Give alsa-info.sh output with that state for further checking.
> >>>>>
> >>>>>
> >>>>> Takashi
> >>>>>
> >>>>
> >>>> Please find alsa-info attached while docking and with
> >>>> "model=lenovo-dock,lenovo-dock" option.
> >>>
> >>> Did you take alsa-info.sh output while you're plugging to the dock
> >>> headphone jack? With the setup, it's NID 0x1b, and "Dock Headphone
> >>> Jack" control should be "true" when properly detected.
> >>>
> >>> Maybe you'd be better to figure out which dock pin corresponds to
> >>> which at first. hda-jack-retask should be your help.
> >>>
> >>>
> >>> Takashi
> >>>
> >> Hi,
> >>
> >> yes, alsa-info.sh was created while the laptop was docked and headphones
> >> plugged in at the docking station headphone jack.
> >>
> >> I installed hda-jack-retask and played with it a little bit, but I'm
> >> rather lost...
> >>
> >> What exactly whould I try to do with it?
> >>
> >> Thanks, Joschi
> >>
> >
> > So if I override pin 0x16 with anything (i.e. type headphones) I do get
> > sound from the speakers connected to the docking station headphone jack!
> >
> > Joschi
> >
>
> Actually, someone else has already found the correct values for the T440p.
> https://github.com/leoluk/thinkpad-stuff/wiki/Haswell-ThinkPad-problems#linux-docking-station-audio-compatibility
>
> I have modified the values to fit the T440s:
> File: /lib/firmware/hda-jack-retask.fw
> --------------------------------------
> [codec]
> 0x10ec0292 0x17aa220c 0
>
> [pincfg]
> 0x16 0x2121101f
> 0x19 0x21a11030
> --------------------------------------
> I tested the settings and can confirm that docking headphone + mic works
> correctly, but I am not sure what these values do/mean exactly.
>
> Possibly they need to be corrected...
The values look OK. Could you try the kernel patch so that it works
without the firmware patching?
thanks,
Takashi
---
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index b60de0dc40d3..4dab65c0da08 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -4236,6 +4236,7 @@ enum {
ALC255_FIXUP_HEADSET_MODE,
ALC255_FIXUP_HEADSET_MODE_NO_HP_MIC,
ALC293_FIXUP_DELL1_MIC_NO_PRESENCE,
+ ALC292_FIXUP_TPT440_DOCK,
};
static const struct hda_fixup alc269_fixups[] = {
@@ -4639,6 +4640,16 @@ static const struct hda_fixup alc269_fixups[] = {
.chained = true,
.chain_id = ALC269_FIXUP_HEADSET_MODE
},
+ [ALC292_FIXUP_TPT440_DOCK] = {
+ .type = HDA_FIXUP_PINS,
+ .v.pins = (const struct hda_pintbl[]) {
+ { 0x16, 0x2121101f }, /* dock headphone */
+ { 0x19, 0x21a11030 }, /* dock mic */
+ { }
+ },
+ .chained = true,
+ .chain_id = ALC269_FIXUP_LIMIT_INT_MIC_BOOST
+ },
};
static const struct snd_pci_quirk alc269_fixup_tbl[] = {
@@ -4803,7 +4814,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
SND_PCI_QUIRK(0x17aa, 0x21fb, "Thinkpad T430s", ALC269_FIXUP_LENOVO_DOCK),
SND_PCI_QUIRK(0x17aa, 0x2203, "Thinkpad X230 Tablet", ALC269_FIXUP_LENOVO_DOCK),
SND_PCI_QUIRK(0x17aa, 0x2208, "Thinkpad T431s", ALC269_FIXUP_LENOVO_DOCK),
- SND_PCI_QUIRK(0x17aa, 0x220c, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
+ SND_PCI_QUIRK(0x17aa, 0x220c, "Thinkpad T440s", ALC292_FIXUP_TPT440_DOCK),
SND_PCI_QUIRK(0x17aa, 0x2212, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
SND_PCI_QUIRK(0x17aa, 0x2214, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
SND_PCI_QUIRK(0x17aa, 0x2215, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
@@ -4881,6 +4892,7 @@ static const struct hda_model_fixup alc269_fixup_models[] = {
{.id = ALC269_FIXUP_DELL2_MIC_NO_PRESENCE, .name = "dell-headset-dock"},
{.id = ALC283_FIXUP_CHROME_BOOK, .name = "alc283-dac-wcaps"},
{.id = ALC283_FIXUP_SENSE_COMBO_JACK, .name = "alc283-sense-combo"},
+ {.id = ALC292_FIXUP_TPT440_DOCK, .name = "tpt440-dock"},
{}
};
More information about the Alsa-devel
mailing list