Received: by 10.192.165.148 with SMTP id m20csp4566081imm; Tue, 8 May 2018 10:25:07 -0700 (PDT) X-Google-Smtp-Source: AB8JxZqfTSMsexAA/PfCnARh0AIyn1+lj3tkPCbQIbWQhpV0fdyI2LPw1Hc4ekXqHLWCmQYbmzxW X-Received: by 2002:a17:902:2f84:: with SMTP id t4-v6mr43462180plb.24.1525800307839; Tue, 08 May 2018 10:25:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525800307; cv=none; d=google.com; s=arc-20160816; b=oMHfOehlm5iWK/kZdW2eFEHH1cgdevYhLroDPAbmYgYsGMP4nVL/RQle7PTmLgGNd3 Ql/M3j1Ft+5EWOJbtZnZWp2xz36NmnfcVs7/vfdYOOtpkAtlTy9BZSUXeTca7hZ5jTmJ 3R3kMykITmQmc61Y6UW0XhnZmZf2I575lCxaHBm/s1bWYLqv1mdVNLjfh/Ac+DwK6iwm YmupSH6EEuVe0BREG+0YDmE/cbX4vEz2ePePwN3GAdfJiawbguz2RUTtKCRoGTiQMto6 KgK0Kwd/rtb5HjJBCmrAVBHofNywDXaHpwN7bV6CBDTcvi9CpEgEcThQmK3w4a+zD2ch rFsQ== 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=CzesArcWddZyuHc6NveOreyN1Ai2c3BueYHb7C3zSws=; b=buqK9BpioUtyKZdTIRsv0D6dyUcrHYL0DW9ML+oR8Uej34XZ0hTpVBNKhrF2oYigRs ZG4kuFlSZDhFV8AfdQLXoexmAoM44omLJ2nQj69ct8KQjs7WXuHzB+1AlhLQxZPycHxv s6U0/u9r8q2zGuA76DFLqRxg/ChWyiAY8ZEBkDpK029UPY2fXTwP3Ul6O7Mb5/Du4Dns fLtB7ZjJGrtmGTV3UCUKL6f6NiXvC5isW7J0L0uuOmirNxWtJb8WQOcOR2RASuMEJeCR cf9zLIKUjzdRKWgsYmpFkrvT7he5ioAcVCDNaeNGTNC6oMBP5J3y4SMFC4A7Lc6bgOkR 1tXQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=NS7djueA; 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 k185-v6si19934258pgk.2.2018.05.08.10.24.53; Tue, 08 May 2018 10:25:07 -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=NS7djueA; 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 S932466AbeEHRUy (ORCPT + 99 others); Tue, 8 May 2018 13:20:54 -0400 Received: from mail-io0-f196.google.com ([209.85.223.196]:37573 "EHLO mail-io0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932204AbeEHRUv (ORCPT ); Tue, 8 May 2018 13:20:51 -0400 Received: by mail-io0-f196.google.com with SMTP id e20-v6so39360430iof.4 for ; Tue, 08 May 2018 10:20:50 -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=CzesArcWddZyuHc6NveOreyN1Ai2c3BueYHb7C3zSws=; b=NS7djueAiv5/h+7/0R4ihFPZn/5PK7TUj+WQHlnexLM0NxfTD43bUoqsFALis6DUGp i4tm7/Q/Ply2GSdCzNZq0NWhk6GdOqJu2nRuXrxjhCGfpvvJIVa5pCJm6VK40ZKQ1iky O7krUfc7VJ7FV4cybCkPdnddfvGuRoMtiVBFw9z6zeQPe0le18i6x+Rl1y4ztoHu0zPc ml/BqmHtoHAKzpedgQvXkqCkTML3t9oqbqaLlAZjiYYc+hjhKw1edreKHEtm3ZAIuhXx oAgiRo7ZbWV9JYxk4nIduZtDhO9NgQmwHX2YbNGFX4h2Kls0GEWeYRyOkP8QdsQJjF+n HgLg== 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=CzesArcWddZyuHc6NveOreyN1Ai2c3BueYHb7C3zSws=; b=WnI7vh5WUyBFuiHQTibvsVDDhbtvI2AiVB/e/KPo/7le9neKSWbSmghcKXlD4/K4Q0 qotrA/Y00GqwHV9GZ2DVGOxIZUsAo5mKGYAjFhsitdLySPppVAawYDMBEdxzwsTBhoF8 hP3EjX0nnsMJIdlHWzeodnFrpMonvPjewImz5Jb9ZJnrb5y0846Mm+PaQHTExD3FS4nR R5J/TcuArMxWpn6220aK1cnWzAyFOWQ6R6VsrPNObVmUOdfwWBSQC8/SFfnBuxSwJLrl SMIuvf0xOJ2AnVxXt0mv3/MLIyk1d2lYqDWXS31gzPPtker7LwK0rhyhL+H6gd9DCNtG +mQA== X-Gm-Message-State: ALKqPwemiXcmdRM3l2Pbfz0jqyfANCkDeEW+LzavXHmB/r8NHCf50wix FdLns7L9YPffvm/RdL33XOg= X-Received: by 2002:a6b:f00d:: with SMTP id w13-v6mr2352955ioc.296.1525800050536; Tue, 08 May 2018 10:20:50 -0700 (PDT) Received: from localhost.localdomain ([2605:a000:1316:4462:80cc:335d:e307:b5cb]) by smtp.googlemail.com with ESMTPSA id k62-v6sm13160209ioo.23.2018.05.08.10.20.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 08 May 2018 10:20:50 -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 v5 03/13] ALSA: hda/ca0132: Add PCI region2 iomap for SBZ Date: Tue, 8 May 2018 13:20:03 -0400 Message-Id: <1525800015-2920-4-git-send-email-conmanx360@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1525800015-2920-1-git-send-email-conmanx360@gmail.com> References: <1525800015-2920-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 | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/sound/pci/hda/patch_ca0132.c b/sound/pci/hda/patch_ca0132.c index 02238fe..78d2c26 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; }; /* @@ -4696,6 +4704,8 @@ static void ca0132_free(struct hda_codec *codec) snd_hda_sequence_write(codec, spec->base_exit_verbs); ca0132_exit_chip(codec); snd_hda_power_down(codec); + if (spec->mem_base) + iounmap(spec->mem_base); kfree(spec->spec_init_verbs); kfree(codec->spec); } @@ -4911,6 +4921,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_warn(codec, "pci_iomap failed!"); + codec_info(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