[alsa-devel] No sound on Thinkpad T440s in Docking Station

Joschi Brauchle joschi.brauchle at tum.de
Tue May 6 17:20:29 CEST 2014


Sorry for top posting earlier, see latest response at the bottom.

On 05/06/2014 03:49 PM, Joschi Brauchle wrote:
> 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"},
>>       {}
>>   };
>>
>>

Alright, I think I found the correct settings:

[codec]
0x10ec0292 0x17aa220c 0

[pincfg]
0x16 0x21211010
0x19 0x21a11010

If
a) no headphones plugged in anywhere, laptop speakers work
b) headphones only plugged in dock and not at laptop, dock headphones 
work, laptop speakers silent
c) headphones plugged in laptop (and/or dock), only laptop headphones 
work, laptop speakers and dock headphone silent

If this is the intended behavior, these values work.

Joschi

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4739 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20140506/d57600d3/attachment.p7s>


More information about the Alsa-devel mailing list