Received: by 10.192.165.148 with SMTP id m20csp322311imm; Thu, 3 May 2018 21:22:36 -0700 (PDT) X-Google-Smtp-Source: AB8JxZqQLjJfXQQAKxCgyC4Av6FxRMBqW/TDsnba1OYKhqn8/n3zv7Pc6YEWCrq/UZGNwvI0jmbl X-Received: by 2002:a17:902:f44:: with SMTP id 62-v6mr26608695ply.318.1525407756431; Thu, 03 May 2018 21:22:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525407756; cv=none; d=google.com; s=arc-20160816; b=JH1p91dNszsFqSkjBPxQIjq5x3Hls+d5jPV27fKaT60F4DXE9LUroVQ12RMJHONc1A rwjALwI+B5X7D7wFyMqae8U4yyG1dfYijIKsHJhbQxfV4OImdSYkKt0ZSlno7gHukNNR +Kfukkcs233ywOSeGm88zaFC6Rs3RxO1cyVWKjylCzGOfFR11+uDapWl50Eop4mRHBTj wAhQkQimTDOTYACPogAPH4SDxGpqXDh4cS6/9aqvKzFpUsgkLMpuDEZDsjcvz2srlGZg mgkb0SNPwNu3SsZHbD7lKVGaspglBEmfMFO37DZEOtjWq+2vzr4B+kW37Nk/KZxL0O2i VyUw== 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:arc-authentication-results; bh=xP79v5YLMBm9dA6BegdUvWkLetsReqY/K976Mf55DSg=; b=lofDHihi/I3WT/suZkcKl///v4EuDoEqY7p72SNHcfWKit/l5pf/z6008gJjV3wSTI ApZtSSx11zYGMT0jNPknPEqkm/jNfkGoubyTtxann7e5Rgb9qNWF56WVQySi1Xb5WiMg CFQ5TOu4BVFWVmC9oiLXgS7pzr4ISUeww955CPhUVyiDbxN+wIEH4jB2wmrbDfsKXfGa ohq7P1a8WSQKc71FUEPFndlasEMo6gImlOtUkwA4w1i0rsd8W+aUSJVeBzpE7x7sAx0z 8hpTxH3Pq+oCiX62eMi816WNUgCDto1FQBHHo89+EN3Mjb7D84078cRT6pfZ6ig4MtSI XYXw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=WdRYzBlq; 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 w6-v6si15340673plq.382.2018.05.03.21.22.22; Thu, 03 May 2018 21:22:36 -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=WdRYzBlq; 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 S1751443AbeEDEUf (ORCPT + 99 others); Fri, 4 May 2018 00:20:35 -0400 Received: from mail-io0-f195.google.com ([209.85.223.195]:35924 "EHLO mail-io0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751394AbeEDEUb (ORCPT ); Fri, 4 May 2018 00:20:31 -0400 Received: by mail-io0-f195.google.com with SMTP id d73-v6so24210221iog.3 for ; Thu, 03 May 2018 21:20:31 -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=xP79v5YLMBm9dA6BegdUvWkLetsReqY/K976Mf55DSg=; b=WdRYzBlq/EjpLpVPYU40WIGUfIcH/bpO8wJZIjs5hMl5KNKxRVK8KB9M+Y2QJcbEdw bmh/4PJVZy09aaZCPcI19NDKFS9itPx6n+Dp7SPFQOdRdToCW8Iw//2VbVVHNINx5YLz 7jdoOc9ZQoPMBaorP1f/ZDgw2levIDG2SIHOBu0uFhERx7v5rpsnaDh1+povTsgUscW0 92+W/UZtt207uwxOg5GiZS1Svo6Ffm5lMfY1pw8d/sNOaofHXAti3D/qXfb6CaITdOMa tKgEl9A4TUf75QOi10vDINsw1btXU9oIvw1mOl07ksMCaDPcNwO/WEoqU2HscAt+lQJs 3+YA== 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=xP79v5YLMBm9dA6BegdUvWkLetsReqY/K976Mf55DSg=; b=fQwZdlTjLUEuU7yzARUSkSyK3Wt7YEdUX90ZtQjD5/pbrxiduptT7LEytQCPNpD2or 8/dM6v8RMmdAoupO/bjeDTwgB1Ak/kZcrzKOfZHpPxmtJKC5Pt6hNjKpd9XKoyn5jZCl qVdt5Syf+m6pVPaIY7+d6jvPJ5izzBCEzdrsretYKO1oE2pEp9+b6xlgc57DkDs0+2D2 Jkb8MU4QjKObDOIanwQSQm483DW0xiSwAqn/mXQpyB3MsvC2gz1cdt2iRpzsSDxs/FJ+ TtYukQpMvJuUvOaqLSM7cYaAJceIIhCq9Cuy1qZJ2QVdF4vW2YhE/N0b78NeriZaS40Y ubPA== X-Gm-Message-State: ALQs6tCaGklFDRN4kTvFhe3VIgmfySGJpcbvfhtxMUlea3ed2I9gKx3u y0/8ciAB1tQbiX7t5v7Z1Eg= X-Received: by 2002:a6b:8bc8:: with SMTP id n191-v6mr29244855iod.145.1525407631005; Thu, 03 May 2018 21:20:31 -0700 (PDT) Received: from localhost.localdomain ([2605:a000:1316:4462:790f:f81c:25a6:fe65]) by smtp.googlemail.com with ESMTPSA id k1-v6sm605341iti.42.2018.05.03.21.20.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 03 May 2018 21:20:30 -0700 (PDT) From: Connor McAdams Cc: o-takashi@sakamocchi.jp, Connor McAdams , Jaroslav Kysela , Takashi Iwai , =?UTF-8?q?J=C3=A9r=C3=A9my=20Lefaure?= , alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/9] Add PCI region2 iomap for SBZ Date: Fri, 4 May 2018 00:19:46 -0400 Message-Id: <1525407594-25644-3-git-send-email-conmanx360@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1525407594-25644-1-git-send-email-conmanx360@gmail.com> References: <1525407594-25644-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 iomapping for the region2 section of memory on the SBZ. This memory region is used in later patches for setting inputs and outputs. If the mapping fails, the quirk is changed back to QUIRK_NONE to avoid attempts to write to uninitialized memory. It also adds a new exit sequence to unmap the iomem for the SBZ. Signed-off-by: Connor McAdams --- sound/pci/hda/patch_ca0132.c | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/sound/pci/hda/patch_ca0132.c b/sound/pci/hda/patch_ca0132.c index 02238fe..68e5122 100644 --- a/sound/pci/hda/patch_ca0132.c +++ b/sound/pci/hda/patch_ca0132.c @@ -29,6 +29,9 @@ #include #include #include +#include +#include +#include #include "hda_codec.h" #include "hda_local.h" #include "hda_auto_parser.h" @@ -760,6 +763,11 @@ struct ca0132_spec { #ifdef ENABLE_TUNING_CONTROLS long cur_ctl_vals[TUNING_CTLS_COUNT]; #endif + /* + * Sound Blaster Z PCI region 2 iomem, used for input and output + * switching, and other unknown commands. + */ + void __iomem *mem_base; }; /* @@ -4693,8 +4701,17 @@ static void ca0132_free(struct hda_codec *codec) cancel_delayed_work_sync(&spec->unsol_hp_work); snd_hda_power_up(codec); - snd_hda_sequence_write(codec, spec->base_exit_verbs); - ca0132_exit_chip(codec); + switch (spec->quirk) { + case QUIRK_SBZ: + iounmap(spec->mem_base); + snd_hda_sequence_write(codec, spec->base_exit_verbs); + ca0132_exit_chip(codec); + break; + default: + snd_hda_sequence_write(codec, spec->base_exit_verbs); + ca0132_exit_chip(codec); + break; + } snd_hda_power_down(codec); kfree(spec->spec_init_verbs); kfree(codec->spec); @@ -4911,6 +4928,15 @@ static int patch_ca0132(struct hda_codec *codec) else spec->quirk = QUIRK_NONE; + /* Setup BAR Region 2 for Sound Blaster Z */ + if (spec->quirk == QUIRK_SBZ) { + spec->mem_base = pci_iomap(codec->bus->pci, 2, 0xC20); + if (spec->mem_base == NULL) { + codec_dbg(codec, "pci_iomap failed!"); + codec_dbg(codec, "perhaps this is not an SBZ?"); + spec->quirk = QUIRK_NONE; + } + } spec->dsp_state = DSP_DOWNLOAD_INIT; spec->num_mixers = 1; spec->mixers[0] = ca0132_mixer; -- 2.7.4