From patchwork Thu Apr 15 22:01:29 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Phil Calvin X-Patchwork-Id: 421801 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.2 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER, INCLUDES_PATCH, MAILING_LIST_MULTI, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 07824C433B4 for ; Thu, 15 Apr 2021 22:03:35 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B18BF610FB for ; Thu, 15 Apr 2021 22:03:33 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B18BF610FB Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=philcalvin.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=alsa-devel-bounces@alsa-project.org Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id A6DF81679; Fri, 16 Apr 2021 00:02:41 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz A6DF81679 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1618524211; bh=1GEBWCKtJnGX84QmN9ThrvruIlENLdaP0nbQSOJzbLE=; h=From:Subject:To:Date:Cc:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From; b=awr872gYX/GHk8q/naQH5iNMv0+qJQL8OOWtgmH2O2RVE1IPm5C7uU/0oBP9mwFDU j6K/JwfWVwjxHaO8BAQKtHt6HLhM3m1sGazdjYhqQw9aof8jF4zeAnCNG86cSyJMUk q9DlkYexMI2wuuaBZ5+UtqAXh86fsJQlx34S8eVc= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 35BC3F8023A; Fri, 16 Apr 2021 00:02:41 +0200 (CEST) Received: by alsa1.perex.cz (Postfix, from userid 50401) id E5CACF8023A; Fri, 16 Apr 2021 00:02:39 +0200 (CEST) Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com [136.143.188.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id F1488F800FF for ; Fri, 16 Apr 2021 00:02:32 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz F1488F800FF Authentication-Results: alsa1.perex.cz; dkim=pass (1024-bit key) header.d=philcalvin.com header.i=phil@philcalvin.com header.b="hNXES7PI" ARC-Seal: i=1; a=rsa-sha256; t=1618524094; cv=none; d=zohomail.com; s=zohoarc; b=QRH6jvQ9zcMqP4YfnkSChT71EdhGGdtfv8/ZohCBC4TDhrNgjMyvK1dD22HggkemwwqI/ucCY3zALgQEbKvngJD/Z4jNfJzB7tqWsT8KGKRm3bznnhYIyaB7GMCn4rpeRcrW1XsoHFYENW2HpUyBiYMVJUsPMFaibupjPyO/C3w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1618524094; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:MIME-Version:Message-ID:Subject:To; bh=TGOSFHb+P/Do+Ew/0mR7ONdOpFz+fzua4IoRI3NmKH0=; b=ZLEkVFqONVPnqWmRKbyexlqKccEt2BuJCTzH0dCshltpKHJVJFeyahYb4eGq5BXbqtUWbYwov5IRs7q5fddVgxilu6F2BmgQ4jbVKV6y4DdhO8WfuGNnvCR+5F7ATrsmNOR29n+fP76QnQP/jDzLd7WmToZjiMBE+LCuD/LwBWo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=philcalvin.com; spf=pass smtp.mailfrom=phil@philcalvin.com; dmarc=pass header.from= header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1618524094; s=default; d=philcalvin.com; i=phil@philcalvin.com; h=From:Subject:To:Cc:Message-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding; bh=TGOSFHb+P/Do+Ew/0mR7ONdOpFz+fzua4IoRI3NmKH0=; b=hNXES7PI6JdODW/EMwzR1kyqY4DEBULyN1KGbxOLsOAT9LdXE+TuxLehcayCylRc TemUCmqAbMnDrEwx/6z9aNwiYh3PY/ypU0z885RXhN1CoS5vfRDFg59U2H/GFTKbYUJ WPaYkXOGAxfMWVV9v9vXrmfPf2jkfW7MTAz9N5fk= Received: from [192.168.1.11] (pool-100-33-69-201.nycmny.fios.verizon.net [100.33.69.201]) by mx.zohomail.com with SMTPS id 1618524090022465.222480064106; Thu, 15 Apr 2021 15:01:30 -0700 (PDT) From: Phil Calvin Subject: [PATCH 1/1] ALSA: hda/realtek: fix mic boost on Intel NUC 8 To: Jaroslav Kysela , Takashi Iwai Message-ID: <80dc5663-7734-e7e5-25ef-15b5df24511a@philcalvin.com> Date: Thu, 15 Apr 2021 18:01:29 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.9.0 MIME-Version: 1.0 Content-Language: en-US X-ZohoMailClient: External Cc: alsa-devel@alsa-project.org X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" Fix two bugs with the Intel HDA Realtek ALC233 sound codec present in Intel NUC NUC8i7BEH and probably a few other similar NUC models. These codecs advertise a 4-level microphone input boost amplifier on pin 0x19, but the highest two boost settings do not work correctly, and produce only low analog noise that does not seem to contain any discernible signal. There is an existing fixup for this exact problem but for a different PCI subsystem ID, so we re-use that logic. Changing the boost level also triggers a DC spike in the input signal that bleeds off over about a second and overwhelms any input during that time. Thankfully, the existing fixup has the side effect of making the boost control show up in userspace as a mute/unmute switch, and this keeps (e.g.) PulseAudio from fiddling with it during normal input volume adjustments. Finally, the NUC hardware has built-in inverted stereo mics. This patch also enables the usual fixup for this so the two channels cancel noise instead of the actual signal. Signed-off-by: Phil Calvin --- sound/pci/hda/patch_realtek.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) SND_PCI_QUIRK(0x8086, 0x2081, "Intel NUC 10", ALC256_FIXUP_INTEL_NUC10), #if 0 diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 58946d069ee5..e1fd4c81965a 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -6405,6 +6405,8 @@ enum { ALC269_FIXUP_LEMOTE_A1802, ALC269_FIXUP_LEMOTE_A190X, ALC256_FIXUP_INTEL_NUC8_RUGGED, + ALC233_FIXUP_INTEL_NUC8_DMIC, + ALC233_FIXUP_INTEL_NUC8_BOOST, ALC256_FIXUP_INTEL_NUC10, ALC255_FIXUP_XIAOMI_HEADSET_MIC, ALC274_FIXUP_HP_MIC, @@ -7122,6 +7124,16 @@ static const struct hda_fixup alc269_fixups[] = { .type = HDA_FIXUP_FUNC, .v.func = alc233_fixup_lenovo_line2_mic_hotkey, }, + [ALC233_FIXUP_INTEL_NUC8_DMIC] = { + .type = HDA_FIXUP_FUNC, + .v.func = alc_fixup_inv_dmic, + .chained = true, + .chain_id = ALC233_FIXUP_INTEL_NUC8_BOOST, + }, + [ALC233_FIXUP_INTEL_NUC8_BOOST] = { + .type = HDA_FIXUP_FUNC, + .v.func = alc269_fixup_limit_int_mic_boost + }, [ALC255_FIXUP_DELL_SPK_NOISE] = { .type = HDA_FIXUP_FUNC, .v.func = alc_fixup_disable_aamix, @@ -8265,6 +8277,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x1c06, 0x2013, "Lemote A1802", ALC269_FIXUP_LEMOTE_A1802), SND_PCI_QUIRK(0x1c06, 0x2015, "Lemote A190X", ALC269_FIXUP_LEMOTE_A190X), SND_PCI_QUIRK(0x8086, 0x2080, "Intel NUC 8 Rugged", ALC256_FIXUP_INTEL_NUC8_RUGGED), + SND_PCI_QUIRK(0x8086, 0x2074, "Intel NUC 8", ALC233_FIXUP_INTEL_NUC8_DMIC),