From patchwork Wed Jul 11 12:26:58 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 942475 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:e::133; helo=bombadil.infradead.org; envelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=arndb.de Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="X+ia9nnD"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 41QdlR1hwgz9s0n for ; Wed, 11 Jul 2018 22:33:23 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To: References:List-Owner; bh=ZvhRYuy+l07fdiYHdu1FFgGA23vyXexArotVnkFqbSI=; b=X+i a9nnDb52jQcyhLpiGwTIViVAKZht0/FIWzZcE2uNZi+YjR4QetQSmElfwKGeb4g2IvXGHAIw49jTa Qt+qvRa5uB3xYlzjV1AQN0zaehDKsT1D87bgYYbfyH5HThzFDhWcC7IGNxW2zOchw/A2ZdR1QLGdp otd3TWZQBZfKchLw3tSxypi4nEwlwB6kGEXAMzzSdh6rj/t36EcQ2086Td34x7dxQuQPxy0JcjaFR ZB90xi4yH8udUcGJCE05JhO01CM6Q082NvHk2Hqzv0YJphSIZ/TSu6+MKp18EoNrEy6SU5Wlub5GK RhPSL0F8XsQ9v+2vFphre9C0ImtZYZg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1fdEJ1-0000II-9q; Wed, 11 Jul 2018 12:33:15 +0000 Received: from mout.kundenserver.de ([217.72.192.74]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1fdEIw-0008IA-FS for linux-mtd@lists.infradead.org; Wed, 11 Jul 2018 12:33:13 +0000 Received: from wuerfel.lan ([46.223.138.35]) by mrelayeu.kundenserver.de (mreue105 [212.227.15.145]) with ESMTPA (Nemesis) id 0LvkQW-1g8s9M1tTY-017Wjx; Wed, 11 Jul 2018 14:27:12 +0200 From: Arnd Bergmann To: Boris Brezillon , Miquel Raynal , David Woodhouse , Brian Norris , Marek Vasut , Richard Weinberger , Abhishek Sahu Subject: [PATCH] nand: ranw: qcom_nand: stop using phys_to_dma() Date: Wed, 11 Jul 2018 14:26:58 +0200 Message-Id: <20180711122709.358159-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 X-Provags-ID: V03:K1:DRtCrIgwEcOl4UrtxCWSpWoKFBivG4uXqQsT4Tx7GaY+m3uLTbW xgTZaDxg/Cu06JJZ/Q088ziFlWpYuMJhSi5sYVR3GP3GoEojx/qVQ8Pc3zR3hvuI8vZyo2N oxkCnmYR3ZAiU2tLpAGRFCTMCKK+015YocJqT9QVk8h1f0ANHbdDMEkXNVPGpt36IZX+Uxk zdMX3suWUyhsm7QlGRXaA== X-UI-Out-Filterresults: notjunk:1; V01:K0:sTVgNMtzh6Q=:JZ7LMypu1YKavWjEdHCTKR vjngutuZpeVPLifAQPrs3BJLjRVoc1wrqBFAqdoruIGghc6+ANrRdjW2ght+rvoqHzrGI+am4 2Z6qOTmbxcEpVGfKCtxlu8v31ahE3rnAjr7bbh+tYm/7pHL6WwExVlWf9hju7U7yr2DPtsdK9 axXjsY1dESe7qqcWWx9ZUooT8xsQ5w6x+NUuzbBAACnto5nS1VCdJlhszqvFOLZthzXVeKU3j OZ0etaElubUABTblknvWgcBI1xse/Euz2Obz9MUmxUTGe9oeB80Jk/SNxzgBJtj7BOvm9F1G7 L/nEJxo8lD8QkpOTkAl1ueT8K7OvcqSHyUzCWewtv14bBm4QxqEKhpXvxrmvO2SBVAs2ID3g5 vvP/EubSBxkDNaOwTIo6SxzRMogLJXXfcAXGDKgl3Cg17Jm8j9hcXLhiT1+c0FWVSFafa+n7u pFq46iLLnP/SSDMr8hwDgNMfrALSDj1m6y4Q2Hw0GHIq1F+XijLftHaF1UvF0eFVKVhjAmu0I 4ZhV6taUap0c6yxUrtJP8idRYZ20U/xEOQWwsv4IXu9fcuugX6cWA4XtSX+Kw8zBwFZJX/wTy jrdnycL5j4WJKB+F6lvXNjejgcbdJTM+L4ldl9dbfcMOHGDsFXWNP7MhPCmnjv10jui6OoGcw f6hfqJDIkFjcPhmv3loXC9X7Wgh0fxPfyJTpL6PBjuudlPBjiYT2EysIRuB+2HMH6Yn0= X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20180711_053311_005928_34DE2F66 X-CRM114-Status: GOOD ( 14.10 ) X-Spam-Score: 0.0 (/) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (0.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [217.72.192.74 listed in list.dnswl.org] X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Masahiro Yamada , Archit Taneja , linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, Arnd Bergmann MIME-Version: 1.0 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org Compile-testing this driver on x86 caused a link error: ERROR: "__phys_to_dma" [drivers/mtd/nand/raw/qcom_nandc.ko] undefined! The problem here is that the driver attempts to convert the physical address into the DMA controller as a dma_addr_t and calls phys_to_dma() to do the conversion. However, there is no generic way to convert a phys_addr_t into a dma_addr_t for anything other than RAM (which should use the dma-mapping API instead). The only correct use of phys_to_dma() instead is inside of the dma-mapping implementation. In all other drivers that deal with DMA FIFO addresses, we just pass the physical address directly and have the DMA controller deal with that if necessary, so let's do the same thing here. Fixes: c76b78d8ec05 ("mtd: nand: Qualcomm NAND controller driver") Signed-off-by: Arnd Bergmann --- drivers/mtd/nand/raw/qcom_nandc.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/mtd/nand/raw/qcom_nandc.c b/drivers/mtd/nand/raw/qcom_nandc.c index 994f980c6d86..f047e2819041 100644 --- a/drivers/mtd/nand/raw/qcom_nandc.c +++ b/drivers/mtd/nand/raw/qcom_nandc.c @@ -338,7 +338,6 @@ struct nandc_regs { * @dev: parent device * @base: MMIO base * @base_phys: physical base address of controller registers - * @base_dma: dma base address of controller registers * @core_clk: controller clock * @aon_clk: another controller clock * @@ -372,7 +371,6 @@ struct qcom_nand_controller { void __iomem *base; phys_addr_t base_phys; - dma_addr_t base_dma; struct clk *core_clk; struct clk *aon_clk; @@ -935,11 +933,11 @@ static int prep_adm_dma_desc(struct qcom_nand_controller *nandc, bool read, slave_conf.device_fc = flow_control; if (read) { slave_conf.src_maxburst = 16; - slave_conf.src_addr = nandc->base_dma + reg_off; + slave_conf.src_addr = (dma_addr_t)nandc->base_phys + reg_off; slave_conf.slave_id = nandc->data_crci; } else { slave_conf.dst_maxburst = 16; - slave_conf.dst_addr = nandc->base_dma + reg_off; + slave_conf.dst_addr = (dma_addr_t)nandc->base_phys + reg_off; slave_conf.slave_id = nandc->cmd_crci; } @@ -2963,7 +2961,6 @@ static int qcom_nandc_probe(struct platform_device *pdev) return PTR_ERR(nandc->base); nandc->base_phys = res->start; - nandc->base_dma = phys_to_dma(dev, (phys_addr_t)res->start); nandc->core_clk = devm_clk_get(dev, "core"); if (IS_ERR(nandc->core_clk))