Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp6738912imu; Mon, 3 Dec 2018 01:52:48 -0800 (PST) X-Google-Smtp-Source: AFSGD/UgVEzL6ER1x2N34i80Pu4u/Eclp4tkes6ZkOhwcxl4rbgwQH017ev3QE5wxSJRHnxVYHwa X-Received: by 2002:a63:920a:: with SMTP id o10mr11108201pgd.141.1543830768067; Mon, 03 Dec 2018 01:52:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543830768; cv=none; d=google.com; s=arc-20160816; b=DgB93vZjo3zD33Mbxl8IMAEehbfmF2ACY6/DAm8P141+EcsdFQmMk7k7FnEXRTbKrF nuXkpTD89dY6jqKDqOx24Vx3Bn9WlgZ6pwoWWcQfGKrfAA9Au2t9UgTuOIm4Ja3vs9p/ 8gkNbVaOi6EyWbJKUwFtoqsJtnDnBHzZb74fDO9aUxzetYb8P8mRjfeGHbilpgK67vSI ZAv7RU7cD359jhU9t7cMTkp5H9LfY4JIQ79G0GKxRJobyJhcDSNWmxblvc8atPltSEGm NrvqGAHEaP6qH6F/BCk0NoE8J6uX5+5vpuEnsjPB4Inx7Lwo8jENiDpjGtcMrBworU21 eGLA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:subject:cc:to:from:message-id:date; bh=22xpzEQao/YFNXz0RSPkfk3PajKHbCWJhxAEeOVNynI=; b=nzcjvhwzNXabhOOjrLtr9LSHeJUc6j+7hJ1dYvF8kYol3YbSrExgUNJrG2VJ4f3ATO UBpleoseBuQciSNp5dUYy6bSK8diXQ9yk1lw3i6btPBhdD3mDnh46z2HpG/MbWr350wg kBKKX8FO3oHQCXOAddbGcXlGzqfJoDgr+8OYOYxbcKN6MPAYPftzcCdmZ+srTEgbt+xz AdfOWImRrkC9iqkD1dcQ/6fhgw5p9ILBygkTwLINt39amdqxrqIph56PFX554LEeO2PS lJG5mJ3DAx16sNb7hPiMCR9kjxMIllffl7afT7w8n0DdlcyTaXIYdNBYBODCtSk7eaw9 yosQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w6si13407239plp.429.2018.12.03.01.52.33; Mon, 03 Dec 2018 01:52:48 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726027AbeLCJwP (ORCPT + 99 others); Mon, 3 Dec 2018 04:52:15 -0500 Received: from mx2.suse.de ([195.135.220.15]:37148 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725901AbeLCJwO (ORCPT ); Mon, 3 Dec 2018 04:52:14 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id AD9FFAFA5; Mon, 3 Dec 2018 09:51:54 +0000 (UTC) Date: Mon, 03 Dec 2018 10:51:53 +0100 Message-ID: From: Takashi Iwai To: Jeremy Cline Cc: Kailang Yang , Jaroslav Kysela , Tim Van den Eynde , alsa-devel@alsa-project.org, Linux Kernel Mailing List Subject: Re: Regression: very quiet speakers on Thinkpad T570s In-Reply-To: References: User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL/10.8 Emacs/26 (x86_64-suse-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, 02 Dec 2018 17:57:06 +0100, Jeremy Cline wrote: > > On 12/1/18 9:44 AM, Takashi Iwai wrote: > > On Fri, 30 Nov 2018 17:51:33 +0100, > > Jeremy Cline wrote: > >> > >> On 11/30/18 11:00 AM, Takashi Iwai wrote: > >>> On Fri, 30 Nov 2018 15:49:17 +0100, > >>> Jeremy Cline wrote: > >>>> > >>>> Hi, > >>>> > >>>> Some folks have reported on the Fedora bug tracker[0] that the laptop > >>>> speaker volume is very low on the Thinkpad T570 when running a kernel > >>>> that includes commit 61fcf8ece9b6 ("ALSA: hda/realtek - Enable Thinkpad > >>>> Dock device for ALC298 platform"). > >>>> > >>>> alsa-info.sh from v4.15.4 (just before commit 61fcf8ece9b6 arrived in > >>>> stable) and v4.19.4 with the issue present are attached to the bugzilla. > >>>> I've also Cc'd Tim, who uploaded them and has the laptop in question. > >>>> > >>>> [0] https://bugzilla.redhat.com/show_bug.cgi?id=1554304 > >>> > >>> Could you pinpoint which kernel version started showing the > >>> regression, at least? The diffs are fairly wide between 4.15 and > >>> 4.19. > >> > >> Ah, sorry for not being more clear. The regression appears to be > >> introduced by commit 61fcf8ece9b6, which got backported to v4.15.5 > >> because it addressed a bug with the dock[0]. v4.19.4 with that commit > >> reverted works, according to the bug reporter. > >> > >> [0] https://bugzilla.kernel.org/show_bug.cgi?id=195161 > > > > OK, then this seems to be the change of DAC assignment. > > > > Maybe the hardware has some implicit assumption of NID 0x03 bound with > > the speaker pin. Below is a patch for fixing the pin / DAC mapping. > > Please give it a try. > > > > > > thanks, > > > > Takashi > > > > --- > > diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c > > index 06f93032d0cc..50bc2e97d799 100644 > > --- a/sound/pci/hda/patch_realtek.c > > +++ b/sound/pci/hda/patch_realtek.c > > @@ -4988,9 +4988,14 @@ static void alc_fixup_tpt470_dock(struct hda_codec *codec, > > { 0x19, 0x21a11010 }, /* dock mic */ > > { } > > }; > > + static hda_nid_t preferred_pairs[] = { > > + 0x14, 0x03, 0x17, 0x02, 0x21, 0x02, > > + 0 > > + }; > > struct alc_spec *spec = codec->spec; > > > > if (action == HDA_FIXUP_ACT_PRE_PROBE) { > > + spec->gen.preferred_dacs = preferred_pairs; > > spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP; > > snd_hda_apply_pincfgs(codec, pincfgs); > > } else if (action == HDA_FIXUP_ACT_INIT) { > > > > That patch does indeed fix the problem according to the original > reporter. Good to hear. Below is the patch with a proper patch description I'm going to merge. thanks, Takashi -- 8< -- From: Takashi Iwai Subject: [PATCH] ALSA: hda/realtek - Fix speaker output regression on Thinkpad T570 We've got a regression report for some Thinkpad models (at least T570s) which shows the too low speaker output volume. The bisection leaded to the commit 61fcf8ece9b6 ("ALSA: hda/realtek - Enable Thinkpad Dock device for ALC298 platform"), and it's basically adding the two pin configurations for the dock, and looks harmless. The real culprit seems, though, that the DAC assignment for the speaker pin is implicitly assumed on these devices, i.e. pin NID 0x14 to be coupled with DAC NID 0x03. When more pins are configured by the commit above, the auto-parser changes the DAC assignment, and this resulted in the regression. As a workaround, just provide the fixed pin / DAC mapping table for this Thinkpad fixup function. It's no generic solution, but the problem itself is pretty much device-specific, so must be good enough. Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1554304 Fixes: 61fcf8ece9b6 ("ALSA: hda/realtek - Enable Thinkpad Dock device for ALC298 platform") Cc: Reported-and-tested-by: Jeremy Cline Signed-off-by: Takashi Iwai --- sound/pci/hda/patch_realtek.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 06f93032d0cc..802f1f1b3a19 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -4988,9 +4988,18 @@ static void alc_fixup_tpt470_dock(struct hda_codec *codec, { 0x19, 0x21a11010 }, /* dock mic */ { } }; + /* Assure the speaker pin to be coupled with DAC NID 0x03; otherwise + * the speaker output becomes too low by some reason on Thinkpads with + * ALC298 codec + */ + static hda_nid_t preferred_pairs[] = { + 0x14, 0x03, 0x17, 0x02, 0x21, 0x02, + 0 + }; struct alc_spec *spec = codec->spec; if (action == HDA_FIXUP_ACT_PRE_PROBE) { + spec->gen.preferred_dacs = preferred_pairs; spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP; snd_hda_apply_pincfgs(codec, pincfgs); } else if (action == HDA_FIXUP_ACT_INIT) { -- 2.19.1