[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