Received: by 2002:a5d:9c59:0:0:0:0:0 with SMTP id 25csp2289435iof; Wed, 8 Jun 2022 01:32:47 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyR+H8FPn96B/DKFMbqGgw1sD7M7lOH+YQToJNaS6bp7ApBILe7Lohq3S/BpxDl5p7ygCvT X-Received: by 2002:a17:903:18f:b0:167:47f3:4a with SMTP id z15-20020a170903018f00b0016747f3004amr25770376plg.70.1654677167145; Wed, 08 Jun 2022 01:32:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1654677167; cv=none; d=google.com; s=arc-20160816; b=aOTiikjVuv7RQ9KLAWmI63tRcgwnejkx/J54snPZAFfXvdij0ntNcDPWOq0nbavqN3 Upo4HiGnI22kiobDNMKqvAl/HFqYIQdr7CmjetV7AVbI3WsTq1a/90ic7F0BAsp7muHU KMS3ATF2U1sU8vLs5Ia3ldF+Le7ll96CUgwRT5xVTVmINdunMh6w89N2QzsXI7DmX/Xt EXauWW/HANJEPl5DtqAPuACDH1EUzGptmIOb7UhP/LgPmhWBb15hu7Ykuvk2w6mM7EPG hPbH+oB/j5iq/+62d6nmEZKf8krwyPaTWt3EpChgMZZ5th5Pb3wAf2kRWNz2ccdUKdbD RIog== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:feedback-id:content-transfer-encoding :mime-version:message-id:date:subject:cc:to:from; bh=FiR6UiOBqOHNGVpWeBJLRk0NTqt1Y61qOI/ATjDSOkc=; b=lqCSTNuz6QGDWLljjb6sgD7tZszeugUIepZXEbN+C5CCV1jOvPkZHI1N9iP3dflMeL x+fc+D4mccWE6JhGImtrLc9epE5ti4sKf+bA1+HPwp9CjaLtP4TrywdGnT/V8EGjoHku Iv/5c46YeFgm2p06t/CjwNPxeqjpNlqr3/RzC+2aF6bIQYsqaYiJodikfN47b/3tgc6J qvH6gkIZ37QFZgycFtTRZrgVs/uEqWhbbCU1YALEbD1OVivRmPH5ntSqtLp/DsGjY8G8 jZM6yDgj4algaovdbvIIgqhZ5KTvCiQrNEkQSYIKDsxufKzG5SMd3MsAxz9Ii+IEcEmK mI3Q== ARC-Authentication-Results: i=1; mx.google.com; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id v9-20020a62a509000000b0050df2e4ba29si19256036pfm.139.2022.06.08.01.32.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Jun 2022 01:32:47 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 03EC7228A86; Wed, 8 Jun 2022 01:00:35 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237280AbiFHHBb (ORCPT + 99 others); Wed, 8 Jun 2022 03:01:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41964 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234979AbiFHGWz (ORCPT ); Wed, 8 Jun 2022 02:22:55 -0400 Received: from smtpbg153.qq.com (smtpbg153.qq.com [13.245.218.24]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 24D272714E for ; Tue, 7 Jun 2022 23:22:49 -0700 (PDT) X-QQ-mid: bizesmtp73t1654669361t723mcsn Received: from localhost.localdomain ( [113.57.152.160]) by bizesmtp.qq.com (ESMTP) with id ; Wed, 08 Jun 2022 14:22:39 +0800 (CST) X-QQ-SSF: 01400000002000B0I000B00A0000000 X-QQ-FEAT: lF5th3nb65GHKQZmGiKMmehEyE9DpOH7JRsnXTCtOfPF1xGxNPHGYCTuI/VTc fBrhdYTNlKAj04qF0XUN/5pcHIBxMZ12d8ddjHFRhLFLNPjnzFm7Ig8B6eajul4aBxqB5+S +PdSvswzWVQFvQYtPy09Gcxdtx066/vIrbq/X/TgkqT3a6IzyRZTXA6kGOUi6B3IHCAWqoM zNbg76Bz0gXDj01iHz8j5r9rXMTZONo//hsqBc69SLx2pnxYhiYL+JbJ4ZGbOGbqt664zSH BCi2Auhe3LPa9cutgqAbFfu1iTLFyFeABLfZ8/ViamgAbhcegNwuKtqzCHMWhNd3TlIhPnT ZRAMOmsH1riNhWsr8SQWdaFere0Os6qXsNtIKcj X-QQ-GoodBg: 2 From: huangwenhui To: tiwai@suse.com, perex@perex.cz Cc: jeremy.szu@canonical.com, hui.wang@canonical.com, wse@tuxedocomputers.com, cam@neo-zeon.de, kailang@realtek.com, tanureal@opensource.cirrus.com, sami@loone.fi, alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org, huangwenhui Subject: [PATCH] [PATCH v2]ALSA: hda/realtek - Add HW8326 support Date: Wed, 8 Jun 2022 14:22:37 +0800 Message-Id: <20220608062237.8162-1-huangwenhuia@uniontech.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:uniontech.com:qybgforeign:qybgforeign3 X-QQ-Bgrelay: 1 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RDNS_NONE, SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Added the support of new Huawei codec HW8326.The HW8326 is developed by Huawei with Realtek's IP Core, and it's compatible with ALC256. Signed-off-by: huangwenhui --- sound/hda/hdac_device.c | 1 + sound/pci/hda/patch_realtek.c | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/sound/hda/hdac_device.c b/sound/hda/hdac_device.c index 3e9e9ac804f6..775474f00141 100644 --- a/sound/hda/hdac_device.c +++ b/sound/hda/hdac_device.c @@ -651,6 +651,7 @@ static const struct hda_vendor_id hda_vendor_ids[] = { { 0x1095, "Silicon Image" }, { 0x10de, "Nvidia" }, { 0x10ec, "Realtek" }, + { 0x19e5, "Huawei" }, { 0x1102, "Creative" }, { 0x1106, "VIA" }, { 0x111d, "IDT" }, diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index f3ad454b3fbf..cd1281691767 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -443,6 +443,7 @@ static void alc_fill_eapd_coef(struct hda_codec *codec) case 0x10ec0245: case 0x10ec0255: case 0x10ec0256: + case 0x19e58326: case 0x10ec0257: case 0x10ec0282: case 0x10ec0283: @@ -580,6 +581,7 @@ static void alc_shutup_pins(struct hda_codec *codec) switch (codec->core.vendor_id) { case 0x10ec0236: case 0x10ec0256: + case 0x19e58326: case 0x10ec0283: case 0x10ec0286: case 0x10ec0288: @@ -3247,6 +3249,7 @@ static void alc_disable_headset_jack_key(struct hda_codec *codec) case 0x10ec0230: case 0x10ec0236: case 0x10ec0256: + case 0x19e58326: alc_write_coef_idx(codec, 0x48, 0x0); alc_update_coef_idx(codec, 0x49, 0x0045, 0x0); break; @@ -3275,6 +3278,7 @@ static void alc_enable_headset_jack_key(struct hda_codec *codec) case 0x10ec0230: case 0x10ec0236: case 0x10ec0256: + case 0x19e58326: alc_write_coef_idx(codec, 0x48, 0xd011); alc_update_coef_idx(codec, 0x49, 0x007f, 0x0045); break; @@ -4910,6 +4914,7 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec) case 0x10ec0230: case 0x10ec0236: case 0x10ec0256: + case 0x19e58326: alc_process_coef_fw(codec, coef0256); break; case 0x10ec0234: @@ -5025,6 +5030,7 @@ static void alc_headset_mode_mic_in(struct hda_codec *codec, hda_nid_t hp_pin, case 0x10ec0230: case 0x10ec0236: case 0x10ec0256: + case 0x19e58326: alc_write_coef_idx(codec, 0x45, 0xc489); snd_hda_set_pin_ctl_cache(codec, hp_pin, 0); alc_process_coef_fw(codec, coef0256); @@ -5175,6 +5181,7 @@ static void alc_headset_mode_default(struct hda_codec *codec) case 0x10ec0230: case 0x10ec0236: case 0x10ec0256: + case 0x19e58326: alc_write_coef_idx(codec, 0x1b, 0x0e4b); alc_write_coef_idx(codec, 0x45, 0xc089); msleep(50); @@ -5274,6 +5281,7 @@ static void alc_headset_mode_ctia(struct hda_codec *codec) case 0x10ec0230: case 0x10ec0236: case 0x10ec0256: + case 0x19e58326: alc_process_coef_fw(codec, coef0256); break; case 0x10ec0234: @@ -5388,6 +5396,7 @@ static void alc_headset_mode_omtp(struct hda_codec *codec) case 0x10ec0230: case 0x10ec0236: case 0x10ec0256: + case 0x19e58326: alc_process_coef_fw(codec, coef0256); break; case 0x10ec0234: @@ -5489,6 +5498,7 @@ static void alc_determine_headset_type(struct hda_codec *codec) case 0x10ec0230: case 0x10ec0236: case 0x10ec0256: + case 0x19e58326: alc_write_coef_idx(codec, 0x1b, 0x0e4b); alc_write_coef_idx(codec, 0x06, 0x6104); alc_write_coefex_idx(codec, 0x57, 0x3, 0x09a3); @@ -5783,6 +5793,7 @@ static void alc255_set_default_jack_type(struct hda_codec *codec) case 0x10ec0230: case 0x10ec0236: case 0x10ec0256: + case 0x19e58326: alc_process_coef_fw(codec, alc256fw); break; } @@ -6385,6 +6396,7 @@ static void alc_combo_jack_hp_jd_restart(struct hda_codec *codec) case 0x10ec0236: case 0x10ec0255: case 0x10ec0256: + case 0x19e58326: alc_update_coef_idx(codec, 0x1b, 0x8000, 1 << 15); /* Reset HP JD */ alc_update_coef_idx(codec, 0x1b, 0x8000, 0 << 15); break; @@ -10095,6 +10107,7 @@ static int patch_alc269(struct hda_codec *codec) case 0x10ec0230: case 0x10ec0236: case 0x10ec0256: + case 0x19e58326: spec->codec_variant = ALC269_TYPE_ALC256; spec->shutup = alc256_shutup; spec->init_hook = alc256_init; @@ -11545,6 +11558,7 @@ static const struct hda_device_id snd_hda_id_realtek[] = { HDA_CODEC_ENTRY(0x10ec0b00, "ALCS1200A", patch_alc882), HDA_CODEC_ENTRY(0x10ec1168, "ALC1220", patch_alc882), HDA_CODEC_ENTRY(0x10ec1220, "ALC1220", patch_alc882), + HDA_CODEC_ENTRY(0x19e58326, "HW8326", patch_alc269), {} /* terminator */ }; MODULE_DEVICE_TABLE(hdaudio, snd_hda_id_realtek); -- 2.20.1