Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp5568780imm; Tue, 18 Sep 2018 11:36:43 -0700 (PDT) X-Google-Smtp-Source: ANB0Vdaere48L94cyGxpfw83tawWEkDGsx4rAUf8ezffg/eY1024MRybSICGNXUhkccgrhUjkFrx X-Received: by 2002:a17:902:ab94:: with SMTP id f20-v6mr31069061plr.231.1537295803508; Tue, 18 Sep 2018 11:36:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1537295803; cv=none; d=google.com; s=arc-20160816; b=dl1745N+MkPNS6YcxZmk4xQ8xo7PDoGTc5f6yRnkgqrd9Q7rPh1xDU6107ql4CqMAh TQ8Pi009qeFj9FVr4+rSjnyfiWcI3M0SVGjbKb61S3m0RmtKVrLykPpL6nR8RAxs/Zgg 2aUQxz8KNpv3JgBDdRbmBv60K1iRjHYUjOkLAJ9eHFV6EwEQA8z/6sHMNIcCstshB+5E RnjHwRc2jdbSVw12vsfY4YlrLvB8L+423TSp4etlCurrivbx70E302/GruAsCCC4X0TI tXonWXyrpsrWydoFcF2cE03GsnFZ0b6RPdelHwrqNz3rUSsl1WzHVdkYhCaYNc0O4q8R GOLg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:to:references:in-reply-to:message-id:date :subject:cc:from:dkim-signature; bh=hCsd8MVwJZTZCXJCJMFwhVwM5c+CFCxp1Ie32qh7wDk=; b=djvJmiD+dfvOQ+hfZ4cWZRRF1AY23jLkQNHWDHpNn+iu+DkZlWD5DZNDr2kZCZrMzf oC79iOTSbBdrr1LuwVo7tUSKfMqBRphkvluLuJAclHxo+UH8I3tk8nsLItlNdCT7Ckxv StTno07fgbw7Bapq+cfGCCzYrVwvLd2a/DEjTrUYOszhr+VyOtT1OnW002PPvNibJmF8 ztBd3NMT7ZPUKDbohws0952tqFnyCKUtBW4oJr64SxMC2bjv0+CxgTNRQF29IDbYET3r 4fgXESPdF/+tzOxY7zi0g3Pb/FtjlCNx2oERyucrLRUKBtrRh/ToHgp8qJJx5k5vtTQS quVw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=r6rgVVaa; 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u1-v6si21264762pfc.337.2018.09.18.11.36.25; Tue, 18 Sep 2018 11:36:43 -0700 (PDT) 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; dkim=fail header.i=@gmail.com header.s=20161025 header.b=r6rgVVaa; 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730331AbeISAIZ (ORCPT + 99 others); Tue, 18 Sep 2018 20:08:25 -0400 Received: from mail-qt0-f193.google.com ([209.85.216.193]:42711 "EHLO mail-qt0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729695AbeISAIY (ORCPT ); Tue, 18 Sep 2018 20:08:24 -0400 Received: by mail-qt0-f193.google.com with SMTP id z8-v6so2665522qto.9 for ; Tue, 18 Sep 2018 11:34:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=hCsd8MVwJZTZCXJCJMFwhVwM5c+CFCxp1Ie32qh7wDk=; b=r6rgVVaaAbWkHKGCqELP2jPuxLjASg02XTbv/P7mKJIMFjjikg37Xjcq0+47XOXtEK BuanSONFdFkhpj+IuEg01Ifb228ydPH7IWkeGyDnP4kqHALrlMySgKfad6qjUK23/hY7 zesNHPyp9bo1GhxxP0tGhat5HbmRRTgASRGKrQxW5E9NtOGqYOX4oIrMXtK1glFSj5lZ HuuR+HCjcm40qOz9Df6JSaZQudfI9lDT34FHmTc4itTLft9O4SzAvAR9PZ+MmoKoAN+a aBzlPDVlkFEAgss0HCIZlDIRuwJqKoQ+743pL2FaHn8CzmLdLB/wvtS0VZu5nVbljmeN xZSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=hCsd8MVwJZTZCXJCJMFwhVwM5c+CFCxp1Ie32qh7wDk=; b=S/dhg1zguIAccx2ppjheMVShOuB2i/AO1Gq2j54/bOUEl8a5zYy8/5dZvMVsn2U4Ss 3Pna10ZrxERviEWJtvZxNOOWVTLXsGX+PDvihCSkhwEkHYZA0F1q4eVldFqJfhM9eYAF LldZ+EimHqOavsiq+j2OWvPmivjUOnZp28FGZlwcEPv3pqXAZ18QILfel4N7DLLLZIYB hhOJQSXrDJqK0ZUJv+7mVynus173v5T/CaAitanSneQlBRMghEGFjKrLCkyPdzAKtOvd djT3Mwl0d2mxg9FIAvEMNsB/h+xS4jq0jW7JBu6h+vw4JXfJuliwkp+/K55O6JwW5ZsT JGjA== X-Gm-Message-State: APzg51AmeyKvHGeb6VCDMQ/eKlgii3hD25z97Xce7bKbWcGkGL4f0fa1 byFgO7w0bjkoVQ8pYB3p3GE= X-Received: by 2002:ac8:3169:: with SMTP id h38-v6mr22938928qtb.125.1537295672303; Tue, 18 Sep 2018 11:34:32 -0700 (PDT) Received: from localhost.localdomain ([2605:a000:1316:4273:719d:df26:b0cf:931a]) by smtp.googlemail.com with ESMTPSA id m15-v6sm13819101qki.1.2018.09.18.11.34.31 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 18 Sep 2018 11:34:31 -0700 (PDT) From: Connor McAdams Cc: conmanx360@gmail.com, Jaroslav Kysela , Takashi Iwai , Takashi Sakamoto , Alastair Bridgewater , alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org Subject: [PATCH 03/15] ALSA: hda/ca0132 - Add pincfg for AE-5 Date: Tue, 18 Sep 2018 14:33:31 -0400 Message-Id: <1537295625-8082-4-git-send-email-conmanx360@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1537295625-8082-1-git-send-email-conmanx360@gmail.com> References: <1537295625-8082-1-git-send-email-conmanx360@gmail.com> To: unlisted-recipients:; (no To-header on input) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch adds the pincfg for the Sound BlasterX AE-5, and cleans up the function it's assigned in. Signed-off-by: Connor McAdams --- sound/pci/hda/patch_ca0132.c | 73 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 60 insertions(+), 13 deletions(-) diff --git a/sound/pci/hda/patch_ca0132.c b/sound/pci/hda/patch_ca0132.c index 81bbec1..5f53c71 100644 --- a/sound/pci/hda/patch_ca0132.c +++ b/sound/pci/hda/patch_ca0132.c @@ -1056,6 +1056,21 @@ static const struct hda_pintbl r3d_pincfgs[] = { {} }; +/* Sound Blaster AE-5 pin configs taken from Windows Driver */ +static const struct hda_pintbl ae5_pincfgs[] = { + { 0x0b, 0x01017010 }, /* Port G -- Lineout FRONT L/R */ + { 0x0c, 0x014510f0 }, /* SPDIF Out 1 */ + { 0x0d, 0x014510f0 }, /* Digital Out */ + { 0x0e, 0x01c510f0 }, /* SPDIF In */ + { 0x0f, 0x01017114 }, /* Port A -- Rear L/R. */ + { 0x10, 0x01017012 }, /* Port D -- Center/LFE or FP Hp */ + { 0x11, 0x01a170ff }, /* Port B -- LineMicIn2 / Rear Headphone */ + { 0x12, 0x01a170f0 }, /* Port C -- LineIn1 */ + { 0x13, 0x908700f0 }, /* What U Hear In*/ + { 0x18, 0x50d000f0 }, /* N/A */ + {} +}; + /* Recon3D integrated pin configs taken from Windows Driver */ static const struct hda_pintbl r3di_pincfgs[] = { { 0x0b, 0x01014110 }, /* Port G -- Lineout FRONT L/R */ @@ -7435,9 +7450,29 @@ static void ca0132_config(struct hda_codec *codec) switch (spec->quirk) { case QUIRK_ALIENWARE: - codec_dbg(codec, "ca0132_config: QUIRK_ALIENWARE applied.\n"); + codec_dbg(codec, "%s: QUIRK_ALIENWARE applied.\n", __func__); snd_hda_apply_pincfgs(codec, alienware_pincfgs); + break; + case QUIRK_SBZ: + codec_dbg(codec, "%s: QUIRK_SBZ applied.\n", __func__); + snd_hda_apply_pincfgs(codec, sbz_pincfgs); + break; + case QUIRK_R3D: + codec_dbg(codec, "%s: QUIRK_R3D applied.\n", __func__); + snd_hda_apply_pincfgs(codec, r3d_pincfgs); + break; + case QUIRK_R3DI: + codec_dbg(codec, "%s: QUIRK_R3DI applied.\n", __func__); + snd_hda_apply_pincfgs(codec, r3di_pincfgs); + break; + case QUIRK_AE5: + codec_dbg(codec, "%s: QUIRK_AE5 applied.\n", __func__); + snd_hda_apply_pincfgs(codec, r3di_pincfgs); + break; + } + switch (spec->quirk) { + case QUIRK_ALIENWARE: spec->num_outputs = 2; spec->out_pins[0] = 0x0b; /* speaker out */ spec->out_pins[1] = 0x0f; @@ -7457,15 +7492,6 @@ static void ca0132_config(struct hda_codec *codec) break; case QUIRK_SBZ: case QUIRK_R3D: - if (spec->quirk == QUIRK_SBZ) { - codec_dbg(codec, "%s: QUIRK_SBZ applied.\n", __func__); - snd_hda_apply_pincfgs(codec, sbz_pincfgs); - } - if (spec->quirk == QUIRK_R3D) { - codec_dbg(codec, "%s: QUIRK_R3D applied.\n", __func__); - snd_hda_apply_pincfgs(codec, r3d_pincfgs); - } - spec->num_outputs = 2; spec->out_pins[0] = 0x0B; /* Line out */ spec->out_pins[1] = 0x0F; /* Rear headphone out */ @@ -7490,10 +7516,31 @@ static void ca0132_config(struct hda_codec *codec) spec->multiout.dig_out_nid = spec->dig_out; spec->dig_in = 0x09; break; - case QUIRK_R3DI: - codec_dbg(codec, "%s: QUIRK_R3DI applied.\n", __func__); - snd_hda_apply_pincfgs(codec, r3di_pincfgs); + case QUIRK_AE5: + spec->num_outputs = 2; + spec->out_pins[0] = 0x0B; /* Line out */ + spec->out_pins[1] = 0x11; /* Rear headphone out */ + spec->out_pins[2] = 0x10; /* Front Headphone / Center/LFE*/ + spec->out_pins[3] = 0x0F; /* Rear surround */ + spec->shared_out_nid = 0x2; + spec->unsol_tag_hp = spec->out_pins[1]; + spec->unsol_tag_front_hp = spec->out_pins[2]; + + spec->adcs[0] = 0x7; /* Rear Mic / Line-in */ + spec->adcs[1] = 0x8; /* Front Mic, but only if no DSP */ + spec->adcs[2] = 0xa; /* what u hear */ + spec->num_inputs = 2; + spec->input_pins[0] = 0x12; /* Rear Mic / Line-in */ + spec->input_pins[1] = 0x13; /* What U Hear */ + spec->shared_mic_nid = 0x7; + spec->unsol_tag_amic1 = spec->input_pins[0]; + + /* SPDIF I/O */ + spec->dig_out = 0x05; + spec->multiout.dig_out_nid = spec->dig_out; + break; + case QUIRK_R3DI: spec->num_outputs = 2; spec->out_pins[0] = 0x0B; /* Line out */ spec->out_pins[1] = 0x0F; /* Rear headphone out */ -- 2.7.4