Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp13382pxb; Thu, 20 Jan 2022 08:10:15 -0800 (PST) X-Google-Smtp-Source: ABdhPJxjgNjXSg+fKo5+7G3WLgPnNq6OmwL/isJkA/xox8ABZiH4tstYCPHgD3L5/CjS6CoLPhvW X-Received: by 2002:a63:7514:: with SMTP id q20mr32466379pgc.260.1642695015550; Thu, 20 Jan 2022 08:10:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642695015; cv=none; d=google.com; s=arc-20160816; b=RRiEprNva6g9BG3ibrekAo6I6bNGgIvNmMJ40V8E++7pyqcpf1yM0zLGXjo3ZlihoQ yhmLcVJ5BUOVm3YoKkDrP2TobAnkmyqCalBx0h9yZ6I7UdsKxj66b98xEriYK99kVWQg NmT5DIJiy8plrV0KOylMOHwRYTuoDwujq+aNeIq5tpdveKg2R3FTn6qdl4cb9H0ROZ0g gQuhIviaOKU3IleFTMn8wvzXe1h/aAzv8AtkLDAB/5f0zKadi1fc8cMcJqCIPS6EWbB9 pYFsZG3C9dyO6GHAb60CyAQd/oEZH6KAtNrrNYR46O9zDaZ18wQ9F9e5No2V3UBlmgh5 2AGg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=gIeWQv8A8+AcVVvbGA0Umv/Zz3ft99MDdnnzWgv5qHY=; b=IJhqjMtBkWt0w9cEwKQmiL/VlnbW5h9/wlvhU4uAeJLQPrBQb+RS7s2dkHfQT6Uz23 pgCwXBrFoBQPNMtMIQANM4/kCw3y1tLwGA0anY8WFZABKApf0Ac7EQmI5fLbMAUQ4HyP +k0k9VkjAJOs+2wJBYaCL219JHyeKiFyV7l/3wEBQhXOUdxHHuNAB3NivWmJiO0DmlQL 9BG3HrjXZx2uX4IT5jIIk3yPMWx6mfxUHr379D36XceALxSSTttdhQBj1RlcRR7aCxZM +jtp2Tnwp2LhBAcRYaeV9YGdGzIjZIpEO4++7iAQlw4q5evZyIJSAFdPsuiUwwTpljxP AAUw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=swUmBV41; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id nh8si3463072pjb.44.2022.01.20.08.09.59; Thu, 20 Jan 2022 08:10:15 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=swUmBV41; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1347070AbiARQK6 (ORCPT + 99 others); Tue, 18 Jan 2022 11:10:58 -0500 Received: from dfw.source.kernel.org ([139.178.84.217]:40572 "EHLO dfw.source.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1346336AbiARQJf (ORCPT ); Tue, 18 Jan 2022 11:09:35 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id E7340612E5; Tue, 18 Jan 2022 16:09:33 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A37EBC00446; Tue, 18 Jan 2022 16:09:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1642522173; bh=8QvpLTZGGQ1wgTvY0ZUtaI8xj3fCTWTHcjhKoKzeebE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=swUmBV41+ZzC4Lf60+Os0CVZTF8XRrSTQ8DprlvC19xtVb5H5Se+9Wsrgnf2jEdkk Sw7ETCyK0K8c82j5UoRzBK5GNpWBrLMWztX/9vVN+DoFPGn+mLNn9B4hyZ9vRuG+m8 t9GGBKvd4ZS2+c+3szwtYPNa7xSpydOtawRQ75Lc= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Christian Lachner , Takashi Iwai Subject: [PATCH 5.15 23/28] ALSA: hda/realtek - Fix silent output on Gigabyte X570 Aorus Master after reboot from Windows Date: Tue, 18 Jan 2022 17:06:09 +0100 Message-Id: <20220118160452.651939676@linuxfoundation.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220118160451.879092022@linuxfoundation.org> References: <20220118160451.879092022@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Christian Lachner commit c1933008679586b20437280463110c967d66f865 upstream. This patch addresses an issue where after rebooting from Windows into Linux there would be no audio output. It turns out that the Realtek Audio driver on Windows changes some coeffs which are not being reset/reinitialized when rebooting the machine. As a result, there is no audio output until these coeffs are being reset to their initial state. This patch takes care of that by setting known-good (initial) values to the coeffs. We initially relied upon alc1220_fixup_clevo_p950() to fix some pins in the connection list. However, it also sets coef 0x7 which does not need to be touched. Furthermore, to prevent mixing device-specific quirks I introduced a new alc1220_fixup_gb_x570() which is heavily based on alc1220_fixup_clevo_p950() but does not set coeff 0x7 and fixes the coeffs that are actually needed instead. This new alc1220_fixup_gb_x570() is believed to also work for other boards, like the Gigabyte X570 Aorus Extreme and the newer Gigabyte Aorus X570S Master. However, as there is no way for me to test these I initially only enable this new behaviour for the mainboard I have which is the Gigabyte X570(non-S) Aorus Master. I tested this patch on the 5.15 branch as well as on master and it is working well for me. BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=205275 Signed-off-by: Christian Lachner Fixes: 0d45e86d2267d ("ALSA: hda/realtek - Fix silent output on Gigabyte X570 Aorus Master") Cc: Link: https://lore.kernel.org/r/20220103140517.30273-2-gladiac@gmail.com Signed-off-by: Takashi Iwai Signed-off-by: Greg Kroah-Hartman --- sound/pci/hda/patch_realtek.c | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -1924,6 +1924,7 @@ enum { ALC887_FIXUP_ASUS_BASS, ALC887_FIXUP_BASS_CHMAP, ALC1220_FIXUP_GB_DUAL_CODECS, + ALC1220_FIXUP_GB_X570, ALC1220_FIXUP_CLEVO_P950, ALC1220_FIXUP_CLEVO_PB51ED, ALC1220_FIXUP_CLEVO_PB51ED_PINS, @@ -2113,6 +2114,29 @@ static void alc1220_fixup_gb_dual_codecs } } +static void alc1220_fixup_gb_x570(struct hda_codec *codec, + const struct hda_fixup *fix, + int action) +{ + static const hda_nid_t conn1[] = { 0x0c }; + static const struct coef_fw gb_x570_coefs[] = { + WRITE_COEF(0x1a, 0x01c1), + WRITE_COEF(0x1b, 0x0202), + WRITE_COEF(0x43, 0x3005), + {} + }; + + switch (action) { + case HDA_FIXUP_ACT_PRE_PROBE: + snd_hda_override_conn_list(codec, 0x14, ARRAY_SIZE(conn1), conn1); + snd_hda_override_conn_list(codec, 0x1b, ARRAY_SIZE(conn1), conn1); + break; + case HDA_FIXUP_ACT_INIT: + alc_process_coef_fw(codec, gb_x570_coefs); + break; + } +} + static void alc1220_fixup_clevo_p950(struct hda_codec *codec, const struct hda_fixup *fix, int action) @@ -2415,6 +2439,10 @@ static const struct hda_fixup alc882_fix .type = HDA_FIXUP_FUNC, .v.func = alc1220_fixup_gb_dual_codecs, }, + [ALC1220_FIXUP_GB_X570] = { + .type = HDA_FIXUP_FUNC, + .v.func = alc1220_fixup_gb_x570, + }, [ALC1220_FIXUP_CLEVO_P950] = { .type = HDA_FIXUP_FUNC, .v.func = alc1220_fixup_clevo_p950, @@ -2517,7 +2545,7 @@ static const struct snd_pci_quirk alc882 SND_PCI_QUIRK(0x13fe, 0x1009, "Advantech MIT-W101", ALC886_FIXUP_EAPD), SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte EP45-DS3/Z87X-UD3H", ALC889_FIXUP_FRONT_HP_NO_PRESENCE), SND_PCI_QUIRK(0x1458, 0xa0b8, "Gigabyte AZ370-Gaming", ALC1220_FIXUP_GB_DUAL_CODECS), - SND_PCI_QUIRK(0x1458, 0xa0cd, "Gigabyte X570 Aorus Master", ALC1220_FIXUP_CLEVO_P950), + SND_PCI_QUIRK(0x1458, 0xa0cd, "Gigabyte X570 Aorus Master", ALC1220_FIXUP_GB_X570), SND_PCI_QUIRK(0x1458, 0xa0ce, "Gigabyte X570 Aorus Xtreme", ALC1220_FIXUP_CLEVO_P950), SND_PCI_QUIRK(0x1462, 0x11f7, "MSI-GE63", ALC1220_FIXUP_CLEVO_P950), SND_PCI_QUIRK(0x1462, 0x1228, "MSI-GP63", ALC1220_FIXUP_CLEVO_P950),