Received: by 10.192.165.148 with SMTP id m20csp1441031imm; Sat, 5 May 2018 12:07:30 -0700 (PDT) X-Google-Smtp-Source: AB8JxZqW1sjOq38H22huqm9CeuRcQyXrq7coin4zhCAzCcpj+hRWZwJ88A9BoklfuahAP68YieX9 X-Received: by 2002:a17:902:3a5:: with SMTP id d34-v6mr32961163pld.103.1525547250444; Sat, 05 May 2018 12:07:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525547250; cv=none; d=google.com; s=arc-20160816; b=xXh6NISlg76XuTiCJlZWE5OdNfmLGYMiuWDnDG1j839clwTMqynVpRXAEedCgpEQ5y pl/aD2g8/0FhhgA3lCHs/zwGoM6KfCCDKKAYAcK7C+qiyBHHrELoeA5cVMfBFkG+4We+ oAUUWgT2EVw3B+6c/q0ylloRwBefC7gOJ53H1J+68bN2aGUcDUMT17QiQ/k8yWesl1l7 cmra/BmKSwXzQ6uVtIV6JC3+wwLIXN6KUy4xsICraWSqXvxtXumnMmxWDxCBIfC/USdG in/Ta16Em8lxljaxuEA6pe+SNmqE70TBfT7297/EJZm6gsRzEZ8MWKCuRf6ZCCuwYuE9 QItQ== 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=AVjQV74VqCYc6lVdD2kLLpaRAOVN6GboOERwdw4quQLWrYy/bB8Usvx+gdATYSdgP4 eRJeHZQUA2gMWXF0B9JYqHdqPUwH1TlWRb511/fkpCLRforzjm1/Js0/bCmdu27Q0Uwz dDlxMt11o58apro/6c6nnJClFu4dgKlkUEPPT6uhtsjzA7GrqkOB18DR44kP6KuDmvrm +Rh4FooRn1QZqdbNRf6styp8SwZWUQlo3BgyQttZBqeQyyswbIBUKLMZ2W0E2gvnvA7P rYc/VY+NPA4Rn6TYWXf00t70saV96/KFNJFVv7jzuiy75SJZPeQI9Bz5MA23rJ0+SaRL lvQA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=An9Z5WXX; 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 y3si19235087pfa.181.2018.05.05.12.07.16; Sat, 05 May 2018 12:07:30 -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=An9Z5WXX; 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 S1752040AbeEETGb (ORCPT + 99 others); Sat, 5 May 2018 15:06:31 -0400 Received: from mail-io0-f194.google.com ([209.85.223.194]:40977 "EHLO mail-io0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751829AbeEETEL (ORCPT ); Sat, 5 May 2018 15:04:11 -0400 Received: by mail-io0-f194.google.com with SMTP id e12-v6so29305422iob.8 for ; Sat, 05 May 2018 12:04:11 -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=An9Z5WXXuPDR5JxWGJ8jGYWwwQxyTP1uRAB4mLZKrrtM0xTAQ4cJcw1h6oTSMVumnI T2VC+klIs1eEZyU7ou3lhwcVkuzysXBADjqZer8yI5prBxujBXJVgMkcwHJRuyl/piXE w2HOz24JFi7w0nelRS2nElwdHGZD+vcYzVfpqR7c15Mmhpt3zPL3xAlScf6XDIcYq54v qMLjWTwUe5k94MpI9kod58JxdYGb7ZwIO8V/agbvej+vXoYMrvIP36RHsNiuh+4yNzoa 8KbQkd/i3+nWyAPbzQedb125/ViGqxgVOgmintTIuYxJgwDwrlnymAldrhmQrLMGDpPS f/MA== 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=YQaxgfA0MhVz9CL46ZgMuTgpoUST0sVcWvsPni/C8W9++yACTuF1iQO4kvg3DJ+m8R zuM57pCt8Bf68Axyv0ppEigRTkxToKJHJgfUS0E88udJ3udY+tWC15wWE+ULEH40EOrs pA72SauZHOTAWLo2UCJaFqYOOw5WnAvhE+V1frpUKdKjnNy5WXthDHyNL/P6KjLeQYC/ fSHUPWCTB1CmvytRmKpx7o4OHeI1ezyIQnBNZKtdaP2GfMuUglkOwLty407w9ZBGZvVg syT/fdCL14OJWAlgIs5uwZKH1xVmzDsufu0uwPD7dwfvO6ICCuGuDKqT8g9kkSZGBA2o DLug== X-Gm-Message-State: ALQs6tAmUCrPnkij4NW5O1wkiT3FA/VIBTadkuqWotX1YPDcvcZRhqjd zlez4632la2tWpMliKiq3Mb52r/P X-Received: by 2002:a6b:895c:: with SMTP id l89-v6mr32841791iod.22.1525547050747; Sat, 05 May 2018 12:04:10 -0700 (PDT) Received: from localhost.localdomain ([2605:a000:1316:4462:961:633e:9990:7115]) by smtp.googlemail.com with ESMTPSA id q21-v6sm3314945itb.4.2018.05.05.12.04.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 05 May 2018 12:04:10 -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 v3 3/9] ALSA: hda/ca0132: Add PCI region2 iomap for SBZ Date: Sat, 5 May 2018 15:03:14 -0400 Message-Id: <1525547001-17588-4-git-send-email-conmanx360@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1525547001-17588-1-git-send-email-conmanx360@gmail.com> References: <1525547001-17588-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