From patchwork Thu Jun 8 13:26:06 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christoph Hellwig X-Patchwork-Id: 9774891 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 5ED6A60393 for ; Thu, 8 Jun 2017 13:30:22 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 505BF28531 for ; Thu, 8 Jun 2017 13:30:22 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4512428543; Thu, 8 Jun 2017 13:30:22 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.1 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id C70F828553 for ; Thu, 8 Jun 2017 13:30:21 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dIxUj-0006BU-RI; Thu, 08 Jun 2017 13:29:01 +0000 Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dIxUi-00068B-4y for xen-devel@lists.xenproject.org; Thu, 08 Jun 2017 13:29:00 +0000 Received: from [85.158.137.68] by server-3.bemta-3.messagelabs.com id 65/A4-01985-B1159395; Thu, 08 Jun 2017 13:28:59 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrMLMWRWlGSWpSXmKPExsXiaHS5VVcq0DL S4PhiVYvvWyYzOTB6HP5whSWAMYo1My8pvyKBNWPG26VsBSeEKo5NXsjWwPiNv4uRi4NF4ASb xKINa5hAHCGBE4wSz75PZ+5i5ORgE1CRePO8hx0kISJwiEXi5JujTCAJZgEFiV/3NrGC2MICQ RLPVq0BsjmARqlKTJigBBLmFTCQ6DjdzQJiSwjIS+xquwhWzgkUbzm9C2yMkIC+xKEF05hB5k sItDBKtF1cwTKBkWcBI8MqRvXi1KKy1CJdS72kosz0jJLcxMwcXUMDY73c1OLixPTUnMSkYr3 k/NxNjEDP1zMwMO5gfP3T6RCjJAeTkiivooBlpBBfUn5KZUZicUZ8UWlOavEhRhkODiUJXqcA oJxgUWp6akVaZg4wBGHSEhw8SiK8/32A0rzFBYm5xZnpEKlTjIpS4rx3/YESAiCJjNI8uDZY2 F9ilJUS5mVkYGAQ4ilILcrNLEGVf8UozsGoJMzr5gs0hSczrwRu+iugxUxAi5e8swBZXJKIkJ JqYDTbl/65St8gSmzfjanqC9TnHUhxVghu/qusw9smKi7UF6QY1Lnape6t8YS77S0MLYenHuZ 1iz3+vaXoZHWotjBnh0uf4dGIF5vL7rBUXsmv81H1aJfTW7bFNUHK/YP7dcdLVlMsVS6JiVsY 936MWy2rduVaz1y11g7+g6ZZmp9OJab+MPNSYinOSDTUYi4qTgQADWpfrHYCAAA= X-Env-Sender: BATV+eb06f239ea6f59aeb59b+5037+infradead.org+hch@bombadil.s rs.infradead.org X-Msg-Ref: server-4.tower-31.messagelabs.com!1496928537!46628691!1 X-Originating-IP: [65.50.211.133] X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG X-StarScan-Received: X-StarScan-Version: 9.4.19; banners=-,-,- X-VirusChecked: Checked Received: (qmail 28521 invoked from network); 8 Jun 2017 13:28:58 -0000 Received: from bombadil.infradead.org (HELO bombadil.infradead.org) (65.50.211.133) by server-4.tower-31.messagelabs.com with AES256-GCM-SHA384 encrypted SMTP; 8 Jun 2017 13:28:58 -0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20170209; h=References:In-Reply-To:Message-Id: Date:Subject:Cc:To:From:Sender:Reply-To:MIME-Version:Content-Type: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=saA26sPfICjyc+4T/0yC4vFagVwbOn+E7o2zrErGht4=; b=IttB9uqrO45fxNq0ZOnUV2XqV efiFT5/+Wbhav95e1HAb7u0uE1XOuCvAN9jG7Lu5upQi4fnF7qm+dpH3mkDB1fcjykBkEuesF05NI gVjf+hdse3xKnyRjmA/xkS5hP7XT3EXTIuEFSSyypJph2qXdG+Th/+wqYO9s5hKE/7vJ+gxwK3M7m wLFg+etpPncpqYfBRFyZ3g0xpseeOLSKRZdb5ZLXH5c7kvWD5qsuYfkZ8ckJGnKIgEE6OeWHaicbm MR34h5MxdDxg66nqLEU3GICCqDi7orXfKUAkqUETjjk0wiLol/kXA5S+1MoEdQgyrPc7wc7RlKx3O /Ru86tTVQ==; Received: from clnet-p099-196.ikbnet.co.at ([83.175.99.196] helo=localhost) by bombadil.infradead.org with esmtpsa (Exim 4.87 #1 (Red Hat Linux)) id 1dIxUc-0008GF-DV; Thu, 08 Jun 2017 13:28:55 +0000 From: Christoph Hellwig To: x86@kernel.org, linux-arm-kernel@lists.infradead.org, xen-devel@lists.xenproject.org, linux-c6x-dev@linux-c6x.org, linux-hexagon@vger.kernel.org, linux-ia64@vger.kernel.org, linux-mips@linux-mips.org, openrisc@lists.librecores.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-xtensa@linux-xtensa.org, dmaengine@vger.kernel.org, linux-tegra@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-samsung-soc@vger.kernel.org, iommu@lists.linux-foundation.org, netdev@vger.kernel.org Date: Thu, 8 Jun 2017 15:26:06 +0200 Message-Id: <20170608132609.32662-42-hch@lst.de> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170608132609.32662-1-hch@lst.de> References: <20170608132609.32662-1-hch@lst.de> X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html Cc: linux-kernel@vger.kernel.org Subject: [Xen-devel] [PATCH 41/44] powerpc/cell: clean up fixed mapping dma_ops initialization X-BeenThere: xen-devel@lists.xen.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" X-Virus-Scanned: ClamAV using ClamSMTP By the time cell_pci_dma_dev_setup calls cell_dma_dev_setup no device can have the fixed map_ops set yet as it's only set by the set_dma_mask method. So move the setup for the fixed case to be only called in that place instead of indirecting through cell_dma_dev_setup. Signed-off-by: Christoph Hellwig --- arch/powerpc/platforms/cell/iommu.c | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-) diff --git a/arch/powerpc/platforms/cell/iommu.c b/arch/powerpc/platforms/cell/iommu.c index 948086e33a0c..497bfbdbd967 100644 --- a/arch/powerpc/platforms/cell/iommu.c +++ b/arch/powerpc/platforms/cell/iommu.c @@ -663,14 +663,9 @@ static const struct dma_map_ops dma_iommu_fixed_ops = { .mapping_error = dma_iommu_mapping_error, }; -static void cell_dma_dev_setup_fixed(struct device *dev); - static void cell_dma_dev_setup(struct device *dev) { - /* Order is important here, these are not mutually exclusive */ - if (get_dma_ops(dev) == &dma_iommu_fixed_ops) - cell_dma_dev_setup_fixed(dev); - else if (get_pci_dma_ops() == &dma_iommu_ops) + if (get_pci_dma_ops() == &dma_iommu_ops) set_iommu_table_base(dev, cell_get_iommu_table(dev)); else if (get_pci_dma_ops() == &dma_direct_ops) set_dma_offset(dev, cell_dma_direct_offset); @@ -963,32 +958,24 @@ static int dma_set_mask_and_switch(struct device *dev, u64 dma_mask) return -EIO; if (dma_mask == DMA_BIT_MASK(64) && - cell_iommu_get_fixed_address(dev) != OF_BAD_ADDR) - { + cell_iommu_get_fixed_address(dev) != OF_BAD_ADDR) { + u64 addr = cell_iommu_get_fixed_address(dev) + + dma_iommu_fixed_base; dev_dbg(dev, "iommu: 64-bit OK, using fixed ops\n"); + dev_dbg(dev, "iommu: fixed addr = %llx\n", addr); set_dma_ops(dev, &dma_iommu_fixed_ops); + set_dma_offset(dev, addr); } else { dev_dbg(dev, "iommu: not 64-bit, using default ops\n"); set_dma_ops(dev, get_pci_dma_ops()); + cell_dma_dev_setup(dev); } - cell_dma_dev_setup(dev); - *dev->dma_mask = dma_mask; return 0; } -static void cell_dma_dev_setup_fixed(struct device *dev) -{ - u64 addr; - - addr = cell_iommu_get_fixed_address(dev) + dma_iommu_fixed_base; - set_dma_offset(dev, addr); - - dev_dbg(dev, "iommu: fixed addr = %llx\n", addr); -} - static void insert_16M_pte(unsigned long addr, unsigned long *ptab, unsigned long base_pte) {