From patchwork Thu Jun 8 13:26:07 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christoph Hellwig X-Patchwork-Id: 9774877 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 713BB60393 for ; Thu, 8 Jun 2017 13:30:13 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 62E5B1FF13 for ; Thu, 8 Jun 2017 13:30:13 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 579A528534; Thu, 8 Jun 2017 13:30:13 +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 0464C28553 for ; Thu, 8 Jun 2017 13:30:13 +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 1dIxUp-0006Kq-6l; Thu, 08 Jun 2017 13:29:07 +0000 Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dIxUn-0006I9-Oz for xen-devel@lists.xenproject.org; Thu, 08 Jun 2017 13:29:05 +0000 Received: from [85.158.137.68] by server-4.bemta-3.messagelabs.com id AF/FD-31580-12159395; Thu, 08 Jun 2017 13:29:05 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrMLMWRWlGSWpSXmKPExsXiaHS5VVc+0DL S4OoVJYvvWyYzOTB6HP5whSWAMYo1My8pvyKBNWP5v43MBXtEKo6/uMnWwLhCsIuRi4NF4ASb xOYn21hBHCGBE4wSW+7eZepi5ORgE1CRePO8hx0kISJwiEXi5JujYAlmAQWJX/c2AXVwcAgLB EtcvucJEmYRUJXYebuDGcTmFTCQODPlKSuILSEgL7Gr7SKYzQkUbzm9C2yMkIC+xKEF05hB5k sItDBKtF1cwTKBkWcBI8MqRvXi1KKy1CJdY72kosz0jJLcxMwcXUMDY73c1OLixPTUnMSkYr3 k/NxNjEDPMwDBDsbmL06HGCU5mJREeRUFLCOF+JLyUyozEosz4otKc1KLDzHKcHAoSfDe8AfK CRalpqdWpGXmAEMQJi3BwaMkwvvfByjNW1yQmFucmQ6ROsWoKCXOWwDSJwCSyCjNg2uDhf0lR lkpYV5GoEOEeApSi3IzS1DlXzGKczAqCfO6+QJN4cnMK4Gb/gpoMRPQ4iXvLEAWlyQipKQaGM MN5CfNaThxrDxVSMBQqmnVngksv9xzDS7UZMjd8U/kbt9s4Vx1+pn/i21Kq9bF7DukIT3jRMW mmZWfw48+EOY6frlTVHti6GHOvjjnn1Iq7H+LD87cW+CdtqZvo3tW3M7UNc6+DDtPbWYtFVWz KGoJu7xrrZvN/mvJbpsCd5Wn7LeeILF7nRJLcUaioRZzUXEiALXSwi92AgAA X-Env-Sender: BATV+eb06f239ea6f59aeb59b+5037+infradead.org+hch@bombadil.s rs.infradead.org X-Msg-Ref: server-2.tower-31.messagelabs.com!1496928541!93021134!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 30209 invoked from network); 8 Jun 2017 13:29:03 -0000 Received: from bombadil.infradead.org (HELO bombadil.infradead.org) (65.50.211.133) by server-2.tower-31.messagelabs.com with AES256-GCM-SHA384 encrypted SMTP; 8 Jun 2017 13:29:03 -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=XON3TUW36P2rkN5fIDq3P1sFNA/9AOY+WuuJ/+oqbms=; b=NZlya0mibQLofKkrwMcq5hTso L7Dvt6TIKweq/7ix3QnJZOedgb6pQCxQzeZXWDtkm32f0+nrF1I6zgMtc8bs1gkMXCdOSKLAK5h+s iZjppoyDEozI/sL0apRJBKY9AaC1w5ijeFPO95c7XmNKay/xMq38VnHQ1odOVZve/4SCvrGYrSBTO WQ9sesPqxFmZ8YAYO5SVqmnZDkpSEEpjoc3Fl13eL/57Qoyj+ghLFyiA4x8BnD5DoB6FGXRHsHS2r PfBwmfzxuL1CxPBWyKWnHFlLRAKKNPmfYay2Al2hsY3pDm6k2FUEBcKDOyBlmjDKYiLKMA/uf+hPH N1PHGIzWg==; 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 1dIxUg-0008L3-3f; Thu, 08 Jun 2017 13:28:58 +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:07 +0200 Message-Id: <20170608132609.32662-43-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 42/44] powerpc/cell: use the dma_supported method for ops switching 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 Besides removing the last instance of the set_dma_mask method this also reduced the code duplication. Signed-off-by: Christoph Hellwig --- arch/powerpc/platforms/cell/iommu.c | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/arch/powerpc/platforms/cell/iommu.c b/arch/powerpc/platforms/cell/iommu.c index 497bfbdbd967..29d4f96ed33e 100644 --- a/arch/powerpc/platforms/cell/iommu.c +++ b/arch/powerpc/platforms/cell/iommu.c @@ -644,20 +644,14 @@ static void dma_fixed_unmap_sg(struct device *dev, struct scatterlist *sg, direction, attrs); } -static int dma_fixed_dma_supported(struct device *dev, u64 mask) -{ - return mask == DMA_BIT_MASK(64); -} - -static int dma_set_mask_and_switch(struct device *dev, u64 dma_mask); +static int dma_suported_and_switch(struct device *dev, u64 dma_mask); static const struct dma_map_ops dma_iommu_fixed_ops = { .alloc = dma_fixed_alloc_coherent, .free = dma_fixed_free_coherent, .map_sg = dma_fixed_map_sg, .unmap_sg = dma_fixed_unmap_sg, - .dma_supported = dma_fixed_dma_supported, - .set_dma_mask = dma_set_mask_and_switch, + .dma_supported = dma_suported_and_switch, .map_page = dma_fixed_map_page, .unmap_page = dma_fixed_unmap_page, .mapping_error = dma_iommu_mapping_error, @@ -952,11 +946,8 @@ static u64 cell_iommu_get_fixed_address(struct device *dev) return dev_addr; } -static int dma_set_mask_and_switch(struct device *dev, u64 dma_mask) +static int dma_suported_and_switch(struct device *dev, u64 dma_mask) { - if (!dev->dma_mask || !dma_supported(dev, dma_mask)) - return -EIO; - if (dma_mask == DMA_BIT_MASK(64) && cell_iommu_get_fixed_address(dev) != OF_BAD_ADDR) { u64 addr = cell_iommu_get_fixed_address(dev) + @@ -965,14 +956,16 @@ static int dma_set_mask_and_switch(struct device *dev, u64 dma_mask) dev_dbg(dev, "iommu: fixed addr = %llx\n", addr); set_dma_ops(dev, &dma_iommu_fixed_ops); set_dma_offset(dev, addr); - } else { + return 1; + } + + if (dma_iommu_dma_supported(dev, dma_mask)) { dev_dbg(dev, "iommu: not 64-bit, using default ops\n"); set_dma_ops(dev, get_pci_dma_ops()); cell_dma_dev_setup(dev); + return 1; } - *dev->dma_mask = dma_mask; - return 0; } @@ -1127,7 +1120,7 @@ static int __init cell_iommu_fixed_mapping_init(void) cell_iommu_setup_window(iommu, np, dbase, dsize, 0); } - dma_iommu_ops.set_dma_mask = dma_set_mask_and_switch; + dma_iommu_ops.dma_supported = dma_suported_and_switch; set_pci_dma_ops(&dma_iommu_ops); return 0;