Received: by 10.192.165.148 with SMTP id m20csp3776401imm; Mon, 7 May 2018 19:36:10 -0700 (PDT) X-Google-Smtp-Source: AB8JxZrMRG+1vxyuAF4oUCFKsixZtvLXJwnW2LKztYscBboOuvoZQppzS88nBWMs1ou1Zfeqfr6z X-Received: by 10.98.200.29 with SMTP id z29mr38175481pff.81.1525746970526; Mon, 07 May 2018 19:36:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525746970; cv=none; d=google.com; s=arc-20160816; b=ysAgxwsdsp40cEQRzRxLo55irmJ2/RFV6Gzmh7OnlLJrhvZPQ7CTl+xecXPBWWZFda AzIH1EJbB1ce1Av5fQI+6Xnacq3d4QGoFrUti20Hom7xiFrbW30zqf1XD+SPK2t4cl+q UCj3JgkjgsLlfOqoyeS00u+EfFkm3L4hXTTbBIYMm3zbWRsISbVKzmVFFPXueeLKh9+p AHvoJ7kNj1KmkC2KZWidT4ZJaPNH/PdqtVqArv3dJxIteL7AcgFmvfDtWSBUSDDD0rSf LJrMsxIQdVoCWB2zn3DgEPrUUDxAkWQTQkvPaKIGa4oWgcT5Aw+FyEkbBzzkZCxdkZBP 1zwQ== 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=mj4ZBXOdu4qBjTAjKylqDcV6ySbglGBCybs3eu0c6bEoG6gAQKwKx2+hOksvnbWiOX OP1/+GS+CKCjOjBdV41cjg2zuPNt7UQzX6AyNF4T30Vz8wmDn277T51i55Wta5FNVpzi 2xOEJk9LNPVFZ1x2Rv9PftYz8ovNyghTsqr7khSUSCS0nIbxTktIDJwmi2ZUlpKCs4sc L3nR/0Jvc+yi/AO25sollLQ+E6yD10G4pP6L8N+wTOkTztzRGT2rxT0Fd8u/8djiiiwb waD0KQOsRLEVejfo7ArgGSN8O7mH2VnldxW0rpHUAwaUN4XAlhWqNWPJ9jbevweaiEEl hbDg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=OaqOBt5r; 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 h62-v6si18404127pgc.548.2018.05.07.19.35.56; Mon, 07 May 2018 19:36:10 -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=OaqOBt5r; 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 S1753978AbeEHCcO (ORCPT + 99 others); Mon, 7 May 2018 22:32:14 -0400 Received: from mail-io0-f194.google.com ([209.85.223.194]:42912 "EHLO mail-io0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753510AbeEHCcJ (ORCPT ); Mon, 7 May 2018 22:32:09 -0400 Received: by mail-io0-f194.google.com with SMTP id a10-v6so36603500ioc.9 for ; Mon, 07 May 2018 19:32:08 -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=OaqOBt5r6OOBYsRI+Zbn1BtN1TYjj2LoXGxZcpqSoCrlUyv2uA5Eaj4QRFY1y1u5CL fMpbB7U4ul6eFi6NpdM0GyYZ++kjDFg4gMfrL8Jt+lJ9rsYsxhYptaznXj50mrRiEZLM mADyj1LykUS4BYxMD2zuVlq+PbHvnjkjBCb/qJBF901AW6Zng975cLUqiAGZpuiORqAn VBEs/rjR3YSp+pHic+RsqnSfrgIZqBwgB+zVf0aZCq5AHDNKxKJdxoHoGq3jhD0ydOns leJJrvp199pEdVGoILVsQCPmbZMeJ3wIDVPLSDyxt+XfuoZRCoDRyH5TrZN6tTiWMeWZ 5chg== 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=GVAhUXUl96Y4/HA2E0tLhzBQIzAK48hksVPEGZAhBuYUeXTFRPHJFR95DzmJPijsUk MYr5qNSU8xbGMpgdsgAYxjz+ZGMffrEQ5gA8VoL6LiNfyfyGaJhiAjSD0amP97DvnBsk oLYk9W3Sy9cVChh9hvx/0xLe//4gaGvsbe2eh7p8nFtGU9bGVkgMJSe8I56hZnIysHqj zgtgTXqZcAc5bYGdSZbvdH+oUk8pzEMgxkLolNvbU8Z1xcpEhkscMTp+1ONYVy95AdK2 br6JCxbfKgKd2JrorgBfxjw4NC1BHWFuJftcn2DtV4M1V55QZJRNW3E/OoosvGh1B6HB QLSw== X-Gm-Message-State: ALQs6tAdrsTYzTEVMrZ3TKL4QCZqypBvpIWzE1nJYfCVDDBZxkbC2wUI BBamVglzu3aEOauunCaVub4= X-Received: by 2002:a6b:1b12:: with SMTP id b18-v6mr42594649iob.175.1525746728586; Mon, 07 May 2018 19:32:08 -0700 (PDT) Received: from localhost.localdomain ([2605:a000:1316:4462:d951:8657:56b7:4002]) by smtp.googlemail.com with ESMTPSA id l22-v6sm4947954ita.8.2018.05.07.19.32.07 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 07 May 2018 19:32:08 -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 v4 03/13] ALSA: hda/ca0132: Add PCI region2 iomap for SBZ Date: Mon, 7 May 2018 22:31:11 -0400 Message-Id: <1525746683-18535-4-git-send-email-conmanx360@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1525746683-18535-1-git-send-email-conmanx360@gmail.com> References: <1525746683-18535-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