Received: by 10.192.165.148 with SMTP id m20csp55405imm; Thu, 3 May 2018 14:47:14 -0700 (PDT) X-Google-Smtp-Source: AB8JxZrTCwAWB4AiuhNqHavosNODacQFsU/hnfZ5FeY2BL/GXHnA+bFSUpEYGFxmIcnCHFUqU81J X-Received: by 2002:a17:902:8f86:: with SMTP id z6-v6mr25915278plo.316.1525384034219; Thu, 03 May 2018 14:47:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525384034; cv=none; d=google.com; s=arc-20160816; b=izZrrjESgkgedhapiswr4cItpXsyIz5zmFOK1zIP8pa8e2vSkTC9vdQnxcXTMFIGxl nqdRMiNfJtnSHK3UB6AWMHKVYwOnlLq0gFU9Ip2Q7Izm7DtpVtTY3eiTPz9Rvl5QfWUH EoJNbyyA7av2Qi8fb2cRDfUuSWwApzHzPn7qYWjl+rbpJ7ugUr53gR17qh6CYL5hg7mX Xc2lDl38LozVfO5Kw7WNOjF13P+SelXKs4TaOZREF+ZidlkpyliIA/8V43/ylTlMb3oA tHOTpa/xScmCiaHqiYHzzBhX6MKFCXT/lD3TR1DiJmuIh/9FBT+Kdqlq/jbghq86ZcI1 dZWA== 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=Mk/Jm9Wr3yGi2447Z7N928tIqtfalGvjk1BCz4TDQo8=; b=bdOOETC8UHY5lc/qxyH6U50QuxwSPscGjqXazRiUKAuzVaIbdJuuhATgxWaO8p6c5r QP9MLkmrXgWSpCDIDcKPZW/6UBmdF0+SpBjpSypH4jANgu/fE9n3lKVmuv5EVdNGg2gr KpbhkmkpKkG1bHfUwBMzkcSxIHqEnYBIOZDnP+gK2V47GpTRnHmzduoG16BtnbQYzx+2 wXLMqqpTDkpMS572kdlIndETSsMJ5S7t5R+vfyvC0EjLz7NmrHZAjt99HEttwWpRc3dV IS+C/wR4YebAEf73pDDQoAh+LQtH7ITNTotoLgqtt5csXiJ67EVLfkrq69ixluuD07xm FVAg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=BukV75nc; 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 r59-v6si1348843plb.314.2018.05.03.14.47.00; Thu, 03 May 2018 14:47:14 -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=BukV75nc; 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 S1751772AbeECVo7 (ORCPT + 99 others); Thu, 3 May 2018 17:44:59 -0400 Received: from mail-it0-f66.google.com ([209.85.214.66]:36021 "EHLO mail-it0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751392AbeECVnQ (ORCPT ); Thu, 3 May 2018 17:43:16 -0400 Received: by mail-it0-f66.google.com with SMTP id e20-v6so1132934itc.1 for ; Thu, 03 May 2018 14:43:16 -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=Mk/Jm9Wr3yGi2447Z7N928tIqtfalGvjk1BCz4TDQo8=; b=BukV75ncW+yQW9uUsbQN0U5L2pE+EZWKe/TwgRxiRAZymFBWYZ+gEdDYGvpv4pgsXB /jcm5FNYrN7oYRJ0dt8SGkavPetBKEywStTZGdjEdiO37ITzNIzEYyWhvG/+CAyIK9J/ 9mYn0HJOyKZp3yHnicuAvtX8/uad39M+6TarxB2RbT1Kbi2ngMP0/HKMTY+yjPFviHoD J09cX7YijeW1ZHdu9KffyTCNeW8rxXrno+I4sZ39QfmoyO35/FKASzRM9nkr8DGPVFSd JXtZUWt7qmFpKYHew6FzHEftYINoMlEbEFXAJqw35EKOHpTtQHZFZmQmZUelRW5n0uhV dl3w== 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=Mk/Jm9Wr3yGi2447Z7N928tIqtfalGvjk1BCz4TDQo8=; b=K6U2meuZ4R9tjIqFgsmQLbAlJuVmjCjNr7tlCjoycD7sWDS+dZBWoUQsBlhwwT6ZQa kISKCySmZrL/dC7G9LjQsdakQRwMRqLjGpLWTLOas4TkCxTwEvEc4bJVDqfFeVM9kgKf Z5n89kaWAmec6+0d9ycd/ZQnYm84WymXIcxC5zmERDE0ZdASgKc5NpaZGl4Uxv0fnZoQ 6yJrxA5uJHQNXSMUqx73C1Fh60nzYMshsUJYZ0Jl9TnXsmyQAiWMuPOCBB78t3xeZisi jOoLbVyw38B2yGgOD+K68+zYMMSgWwFC2fCwV2Bxroo6kWRg4TOG0oiCSBAeMmoZXl5V qJLQ== X-Gm-Message-State: ALQs6tAX9pKxgOPeBIuuAdI/kIxM4SyN5Kek4e65n/t1oZWXFgkHFpR7 n/LuKuVcm0ebkeiXlvJe8tw= X-Received: by 2002:a24:61d0:: with SMTP id s199-v6mr28127341itc.66.1525383796231; Thu, 03 May 2018 14:43:16 -0700 (PDT) Received: from localhost.localdomain ([2605:a000:1316:4462:30e7:9a4b:7da5:3c1c]) by smtp.googlemail.com with ESMTPSA id u77-v6sm263119ita.30.2018.05.03.14.43.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 03 May 2018 14:43:15 -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: Thu, 3 May 2018 17:42:44 -0400 Message-Id: <1525383771-11105-3-git-send-email-conmanx360@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1525383771-11105-1-git-send-email-conmanx360@gmail.com> References: <1525383771-11105-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 9347c9d..2f7f964 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; }; /* @@ -4691,8 +4699,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); @@ -4909,6 +4926,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