Hello Takashi, thanks for the patch. I have tested it and found the following strange behavior: I only get sound from the dock headset port if I also plug in a headset to the laptop headset connector. Thus I reverted to my original kernel module + firmware patch and did some further testing. The results is as follows: a) Using: ------------------ [codec] 0x10ec0292 0x17aa220c 0 [pincfg] 0x16 0x2121101f 0x19 0x21a10030 ------------------ I get LOW VOLUME sound from the dock headphone ONLY when also laptop headphone connector is plugged in. b) Using: ------------------ [codec] 0x10ec0292 0x17aa220c 0 [pincfg] 0x16 0x2121101f 0x19 0x21a10030 0x1b 0x2121101f ------------------ I get HIGH VOLUME sound from the dock headphones when no laptop headphones are connected, but LOW VOLUME sound when both are plugged in. The output of # hda-verb /dev/snd/hwC1D0 0x1b GET_PIN_SENSE 0 nid = 0x1b, verb = 0xf09, param = 0x0 value = 0x0 stays the same for any headphone configuration (only dock, only laptop, both). So I do not quite understand whats happening... Joschi On 05/06/2014 11:46 AM, Takashi Iwai wrote: > 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"}, > {} > }; > > -- Dipl.-Ing. Joschi Brauchle, M.S. Institute for Communications Engineering (LNT) Technische Universitaet Muenchen (TUM) 80290 Munich, Germany Tel (work): +49 89 289-23474 Fax (work): +49 89 289-23490 E-mail: joschi.brauchle@tum.de Web: http://www.lnt.ei.tum.de/