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#linu...
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