From patchwork Sun Dec 16 17:26:00 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 1885281 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork2.kernel.org Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) by patchwork2.kernel.org (Postfix) with ESMTP id C1827DFAC4 for ; Sun, 16 Dec 2012 17:32:42 +0000 (UTC) Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1TkI1d-0007YD-9D; Sun, 16 Dec 2012 17:29:17 +0000 Received: from perceval.ideasonboard.com ([95.142.166.194]) by merlin.infradead.org with esmtps (Exim 4.76 #1 (Red Hat Linux)) id 1TkHxl-0005Ac-FE for linux-arm-kernel@lists.infradead.org; Sun, 16 Dec 2012 17:25:18 +0000 Received: from avalon.quadriga.com (unknown [194.136.87.226]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id AEF8B359A9; Sun, 16 Dec 2012 18:25:01 +0100 (CET) From: Laurent Pinchart To: Hideki EIRAKU Subject: [PATCH/WIP/RFC 14/14] shmobile-ipmmu: Store iommu_mapping in struct shmobile_ipmmu Date: Sun, 16 Dec 2012 18:26:00 +0100 Message-Id: <1355678760-27357-15-git-send-email-laurent.pinchart+renesas@ideasonboard.com> X-Mailer: git-send-email 1.7.8.6 In-Reply-To: <1355678760-27357-1-git-send-email-laurent.pinchart+renesas@ideasonboard.com> References: <1350290093-998-1-git-send-email-hdk@igel.co.jp> <1355678760-27357-1-git-send-email-laurent.pinchart+renesas@ideasonboard.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20121216_122517_777488_DCE2552E X-CRM114-Status: GOOD ( 10.61 ) X-Spam-Score: -2.6 (--) X-Spam-Report: SpamAssassin version 3.3.2 on merlin.infradead.org summary: Content analysis details: (-2.6 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] Cc: Katsuya MATSUBARA , Simon Horman , linux-sh@vger.kernel.org, Magnus Damm , linux-kernel@vger.kernel.org, Paul Mundt , Damian Hobson-Garcia , linux-arm-kernel@lists.infradead.org, Marek Szyprowski X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: linux-arm-kernel-bounces@lists.infradead.org Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org And remove the global iommu_mapping variable. Signed-off-by: Laurent Pinchart --- drivers/iommu/shmobile-iommu.c | 14 ++++++++------ drivers/iommu/shmobile-ipmmu.h | 4 ++++ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/drivers/iommu/shmobile-iommu.c b/drivers/iommu/shmobile-iommu.c index 2592d25..8cf45df 100644 --- a/drivers/iommu/shmobile-iommu.c +++ b/drivers/iommu/shmobile-iommu.c @@ -47,7 +47,6 @@ struct shmobile_iommu_domain { atomic_t active; }; -static struct dma_iommu_mapping *iommu_mapping; static struct device *ipmmu_devices; static struct dma_pool *l1pool, *l2pool; static spinlock_t lock; @@ -311,19 +310,22 @@ static struct iommu_ops shmobile_iommu_ops = { static int shmobile_iommu_attach_all_devices(struct shmobile_ipmmu *ipmmu) { + struct dma_iommu_mapping *mapping; struct device *dev; - iommu_mapping = arm_iommu_create_mapping(&platform_bus_type, 0x0, - L1_LEN << 20, 0); - if (IS_ERR_OR_NULL(iommu_mapping)) - return PTR_ERR(iommu_mapping); + mapping = arm_iommu_create_mapping(&platform_bus_type, 0, + L1_LEN << 20, 0); + if (IS_ERR(mapping)) + return PTR_ERR(mapping); + + ipmmu->iommu_mapping = mapping; for (dev = ipmmu_devices; dev; ) { struct shmobile_iommu_arch_data *data = dev->archdata.iommu; data->ipmmu = ipmmu; - if (arm_iommu_attach_device(dev, iommu_mapping)) + if (arm_iommu_attach_device(dev, mapping)) pr_err("arm_iommu_attach_device failed\n"); dev = data->next; diff --git a/drivers/iommu/shmobile-ipmmu.h b/drivers/iommu/shmobile-ipmmu.h index 1458a97..f8f0f57 100644 --- a/drivers/iommu/shmobile-ipmmu.h +++ b/drivers/iommu/shmobile-ipmmu.h @@ -1,11 +1,15 @@ #ifndef __SHMOBILE_IPMMU_H__ #define __SHMOBILE_IPMMU_H__ +struct dma_iommu_mapping; + struct shmobile_ipmmu { struct device *dev; void __iomem *ipmmu_base; int tlb_enabled; struct mutex flush_lock; + + struct dma_iommu_mapping *iommu_mapping; }; #ifdef CONFIG_SHMOBILE_IPMMU_TLB