From patchwork Thu May 28 22:35:49 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Zwisler X-Patchwork-Id: 6502691 Return-Path: X-Original-To: patchwork-linux-nvdimm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id C65B2C0020 for ; Thu, 28 May 2015 22:36:21 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id DBC7C2076A for ; Thu, 28 May 2015 22:36:20 +0000 (UTC) Received: from ml01.01.org (ml01.01.org [198.145.21.10]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id AA6762076B for ; Thu, 28 May 2015 22:36:18 +0000 (UTC) Received: from ml01.vlan14.01.org (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 938A7182857; Thu, 28 May 2015 15:36:18 -0700 (PDT) X-Original-To: linux-nvdimm@lists.01.org Delivered-To: linux-nvdimm@lists.01.org Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by ml01.01.org (Postfix) with ESMTP id AEA8D182844 for ; Thu, 28 May 2015 15:36:17 -0700 (PDT) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga103.fm.intel.com with ESMTP; 28 May 2015 15:36:17 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.13,514,1427785200"; d="scan'208";a="578479031" Received: from rzwisler-mobl1.amr.corp.intel.com (HELO theros.lm.intel.com) ([10.232.112.154]) by orsmga003.jf.intel.com with ESMTP; 28 May 2015 15:36:09 -0700 From: Ross Zwisler To: linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, linux-nvdimm@lists.01.org Subject: [PATCH 2/6] nfit: Fix up address spaces, sparse warnings Date: Thu, 28 May 2015 16:35:49 -0600 Message-Id: <1432852553-24865-3-git-send-email-ross.zwisler@linux.intel.com> X-Mailer: git-send-email 1.9.3 In-Reply-To: <1432852553-24865-1-git-send-email-ross.zwisler@linux.intel.com> References: <1432852553-24865-1-git-send-email-ross.zwisler@linux.intel.com> Cc: "Rafael J. Wysocki" X-BeenThere: linux-nvdimm@lists.01.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "Linux-nvdimm developer list." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: linux-nvdimm-bounces@lists.01.org Sender: "Linux-nvdimm" X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Fix a couple of sparse warnings (duplicate const, incorrect address space), and go back to using memcpy() instead of memcpy_toio() and memcpy_fromio() when talking to our block apertures. Instead, include a union to alias mmio->base and mmio->aperture so that we can continue to reuse common code for ioremapping and deinterleaving. mmio->base still has the __iomem annotation and is used via readq() and writeq() for the control and status registers. mmio->aperture is used via normal memcpy() for aperture I/O. Signed-off-by: Ross Zwisler Cc: Dan Williams Cc: "Rafael J. Wysocki" Cc: linux-nvdimm@lists.01.org Cc: linux-acpi@vger.kernel.org --- drivers/acpi/nfit.c | 10 +++++----- drivers/acpi/nfit.h | 5 ++++- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/drivers/acpi/nfit.c b/drivers/acpi/nfit.c index 34f879808ada..df14652ea13e 100644 --- a/drivers/acpi/nfit.c +++ b/drivers/acpi/nfit.c @@ -60,7 +60,7 @@ static int acpi_nfit_ctl(struct nd_bus_descriptor *nd_desc, unsigned int buf_len) { struct acpi_nfit_desc *acpi_desc = to_acpi_nfit_desc(nd_desc); - const struct nd_cmd_desc const *desc = NULL; + const struct nd_cmd_desc *desc = NULL; union acpi_object in_obj, in_buf, *out_obj; struct device *dev = acpi_desc->dev; const char *cmd_name, *dimm_name; @@ -895,7 +895,7 @@ static u64 to_interleave_offset(u64 offset, struct nfit_blk_mmio *mmio) static u64 read_blk_stat(struct nfit_blk *nfit_blk, unsigned int bw) { - struct nfit_blk_mmio __iomem *mmio = &nfit_blk->mmio[DCR]; + struct nfit_blk_mmio *mmio = &nfit_blk->mmio[DCR]; u64 offset = nfit_blk->stat_offset + mmio->size * bw; if (mmio->num_lines) @@ -908,7 +908,7 @@ static void write_blk_ctl(struct nfit_blk *nfit_blk, unsigned int bw, resource_size_t dpa, unsigned int len, unsigned int write) { u64 cmd, offset; - struct nfit_blk_mmio __iomem *mmio = &nfit_blk->mmio[DCR]; + struct nfit_blk_mmio *mmio = &nfit_blk->mmio[DCR]; enum { BCW_OFFSET_MASK = (1ULL << 48)-1, @@ -959,9 +959,9 @@ static int acpi_nfit_blk_single_io(struct nfit_blk *nfit_blk, void *iobuf, } if (write) - memcpy_fromio(mmio->base + offset, iobuf + copied, c); + memcpy(mmio->aperture + offset, iobuf + copied, c); else - memcpy_toio(iobuf + copied, mmio->base + offset, c); + memcpy(iobuf + copied, mmio->aperture + offset, c); copied += c; len -= c; diff --git a/drivers/acpi/nfit.h b/drivers/acpi/nfit.h index e462214f94cd..b882a22ee7bb 100644 --- a/drivers/acpi/nfit.h +++ b/drivers/acpi/nfit.h @@ -115,7 +115,10 @@ enum nd_blk_mmio_selector { struct nfit_blk { struct nfit_blk_mmio { - void __iomem *base; + union { + void __iomem *base; + void *aperture; + }; u64 size; u64 base_offset; u32 line_size;