From patchwork Thu Mar 1 15:27:27 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sasha Levin X-Patchwork-Id: 130290 Delivered-To: patch@linaro.org Received: by 10.80.172.228 with SMTP id x91csp2952685edc; Thu, 1 Mar 2018 07:38:45 -0800 (PST) X-Google-Smtp-Source: AG47ELumVRB+/1HYYlDolSjcni5ytdQrMwSrGdbkj0Lyg0FNrF8LeYId6AOVWdE6+6PXpNHd+TnK X-Received: by 2002:a17:902:12e:: with SMTP id 43-v6mr2295083plb.77.1519918725087; Thu, 01 Mar 2018 07:38:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519918725; cv=none; d=google.com; s=arc-20160816; b=Avj03fO6Su2ARMXOm8VZQPKmJ8rAH69okQbVvZVGlprWdeuQobwvgXkSarQTmMPuz0 QZs0bk9WS+FZb9OeRCimfDp/t6Dj5XJeoXy7uaNs/aTX/85nfOWaiO7g+LGZein1HGGm SJjQb59RJ2E1QUOYsh9TbFTWda1oSX3J1lXWaB9UBEb0CxjyO1FlzjV0+WnnAnOkWyuT /Ezokb3Vt9CHXdcJ2T8oulgegibiNPOyytpgrzoA6sLPzSpCPn9fahy2uMVK9/2UlvYX HGp8wdvTy2yelXIK1V004vUCRrRXtxHwTWXalUitnuv6IegYqQ71fUJhU4KFCBJ3Wxgz vCWQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :spamdiagnosticmetadata:spamdiagnosticoutput:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=OK2SqSpIcPnoZTHXAtrFc2FwlCMcmTnjMDlxIkBGpP4=; b=kdyILAS16+CtmaACrZj4tHcoTCVsCnQkKDdtNUsoTSHRuWspQ+uSQ9ry+RdIv+eR0d zNgr4a7bEuOLk+iihlwLiY2/mpMxn0vtIek0izmj1IOu+uqQWZUFHr7ux7b9pIdiBAYq cGuRTJh4njwMx475ZrY/f9bq/5OZNt1hH9CW5NbKk/pPHyY1FHsaAAsYHsxlELkIAlxh WjHLpl4uKAWy+m5KWoMWjapFdNIdx/D/buwnd0gPvBoOgL0+ooG8OYBVibyjOepKbXPl I+8piSScjdhVQvBxALnSFPdb4ZaT+XmY+dikYriv2DyRB4cRZOMCOUU72LvIVODykDEl 791w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@microsoft.com header.s=selector1 header.b=Xl5UvuLb; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=microsoft.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b15si2586092pgs.318.2018.03.01.07.38.44; Thu, 01 Mar 2018 07:38:45 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@microsoft.com header.s=selector1 header.b=Xl5UvuLb; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=microsoft.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1032575AbeCAPin (ORCPT + 10 others); Thu, 1 Mar 2018 10:38:43 -0500 Received: from mail-sn1nam02on0103.outbound.protection.outlook.com ([104.47.36.103]:11220 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1032565AbeCAPie (ORCPT ); Thu, 1 Mar 2018 10:38:34 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=OK2SqSpIcPnoZTHXAtrFc2FwlCMcmTnjMDlxIkBGpP4=; b=Xl5UvuLb8LpIpkUP3bq86LD+4W5xZreosMvmIlmZLJ3EeXaRosWaXwkz6biMZ6JFjtCl4p4oHPx91ssywi7uXxMMCAtkSm4BVU7+2cDdzH4FS7lP6SSp01Iqro4frPK0RYqhboMm7t4faDcLab0NIi1b+WTEYOLFBozJ/HEW+CA= Received: from DM5PR2101MB1032.namprd21.prod.outlook.com (52.132.128.13) by DM5PR2101MB1016.namprd21.prod.outlook.com (52.132.133.38) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.567.2; Thu, 1 Mar 2018 15:38:29 +0000 Received: from DM5PR2101MB1032.namprd21.prod.outlook.com ([fe80::8063:c68a:b210:7446]) by DM5PR2101MB1032.namprd21.prod.outlook.com ([fe80::8063:c68a:b210:7446%2]) with mapi id 15.20.0567.006; Thu, 1 Mar 2018 15:38:29 +0000 From: Sasha Levin To: "stable@vger.kernel.org" , "stable-commits@vger.kernel.org" CC: Arnd Bergmann , Brian Norris , Sasha Levin Subject: [added to the 4.1 stable tree] mtd: sh_flctl: pass FIFO as physical address Thread-Topic: [added to the 4.1 stable tree] mtd: sh_flctl: pass FIFO as physical address Thread-Index: AQHTsXHOuS3BMx0xTkOeu3/H3khrcQ== Date: Thu, 1 Mar 2018 15:27:27 +0000 Message-ID: <20180301152116.1486-464-alexander.levin@microsoft.com> References: <20180301152116.1486-1-alexander.levin@microsoft.com> In-Reply-To: <20180301152116.1486-1-alexander.levin@microsoft.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [52.168.54.252] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DM5PR2101MB1016; 7:j8RhvJe4zdTEFzQHSdLhuaj6GR6PS7EFF8hE/SsdJaUHP22el3TB/OGZZgi73imu+VxsFiqLestzonKwUloGoYhFmPoklXl/GdXP5pLPxjtzTpAstl8WohrDK/DuKPVy8v9r+fHMuPiKXJcOZPJVnt42bvBbcdUX4Q+9OAsPMZqjaInZd2pKxfBFYdKw0I0uZZSgSfg3qPCquwTdCi1c5YjnR0fXzKbg2jHZA48FqrrqZ8c++QPDviHt0bJjwtkF x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 61fd4ebf-d591-4a93-1f15-08d57f8a7b41 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(3008032)(2017052603307)(7193020); SRVR:DM5PR2101MB1016; x-ms-traffictypediagnostic: DM5PR2101MB1016: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(28532068793085)(89211679590171)(85827821059158); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(61425038)(6040501)(2401047)(5005006)(8121501046)(3002001)(93006095)(93001095)(10201501046)(3231220)(944501229)(52105095)(6055026)(61426038)(61427038)(6041288)(20161123560045)(20161123558120)(20161123564045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:DM5PR2101MB1016; BCL:0; PCL:0; RULEID:; SRVR:DM5PR2101MB1016; x-forefront-prvs: 05986C03E0 x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(346002)(366004)(39860400002)(39380400002)(376002)(396003)(189003)(199004)(22452003)(6436002)(8676002)(81156014)(81166006)(53936002)(68736007)(6486002)(6512007)(97736004)(5660300001)(86362001)(59450400001)(6506007)(102836004)(6346003)(39060400002)(2906002)(26005)(186003)(4326008)(10290500003)(8936002)(76176011)(478600001)(105586002)(3280700002)(14454004)(54906003)(110136005)(3660700001)(2950100002)(305945005)(7736002)(6116002)(72206003)(1076002)(3846002)(316002)(2900100001)(25786009)(36756003)(2501003)(66066001)(107886003)(106356001)(5250100002)(86612001)(99286004)(10090500001)(22906009); DIR:OUT; SFP:1102; SCL:1; SRVR:DM5PR2101MB1016; H:DM5PR2101MB1032.namprd21.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Alexander.Levin@microsoft.com; x-microsoft-antispam-message-info: HuVBoEMqlCMo/QswIBZpf6u7dBOYvpyAe5r32eQNQBQ1HOS17bZ8Io+A1//6a0NrP1bCHbw6FOxH8JG3wPD1D7x8quuSPnZMjG1q5KJdB2GQ+jWIM8aSDmuy5Tkd4utV9Y0EI+SA53BB23TBEUlkORtylMSrrzgQXOxIwBtBTjU= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-Network-Message-Id: 61fd4ebf-d591-4a93-1f15-08d57f8a7b41 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Mar 2018 15:27:27.7244 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR2101MB1016 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Arnd Bergmann This patch has been added to the 4.1 stable tree. If you have any objections, please let us know. -- 2.14.1 =============== [ Upstream commit 1873315fb156cbc8e46f28e8b128f17ff6c31728 ] By convention, the FIFO address we pass using dmaengine_slave_config is a physical address in the form that is understood by the DMA engine, as a dma_addr_t, phys_addr_t or resource_size_t. The sh_flctl driver however passes a virtual __iomem address that gets cast to dma_addr_t in the slave driver. This happens to work on shmobile because that platform sets up an identity mapping for its MMIO regions, but such code is not portable to other platforms, and prevents us from ever changing the platform mapping or reusing the driver on other architectures like ARM64 that might not have the mapping. We also get a warning about a type mismatch for the case that dma_addr_t is wider than a pointer, i.e. when CONFIG_LPAE is set: drivers/mtd/nand/sh_flctl.c: In function 'flctl_setup_dma': drivers/mtd/nand/sh_flctl.c:163:17: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] cfg.dst_addr = (dma_addr_t)FLDTFIFO(flctl); This changes the driver to instead pass the physical address of the FIFO that is extracted from the MMIO resource, making the code more portable and avoiding the warning. Signed-off-by: Arnd Bergmann Signed-off-by: Brian Norris Signed-off-by: Sasha Levin --- drivers/mtd/nand/sh_flctl.c | 5 +++-- include/linux/mtd/sh_flctl.h | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/mtd/nand/sh_flctl.c b/drivers/mtd/nand/sh_flctl.c index c3ce81c1a716..54cf6fce9877 100644 --- a/drivers/mtd/nand/sh_flctl.c +++ b/drivers/mtd/nand/sh_flctl.c @@ -160,7 +160,7 @@ static void flctl_setup_dma(struct sh_flctl *flctl) memset(&cfg, 0, sizeof(cfg)); cfg.direction = DMA_MEM_TO_DEV; - cfg.dst_addr = (dma_addr_t)FLDTFIFO(flctl); + cfg.dst_addr = flctl->fifo; cfg.src_addr = 0; ret = dmaengine_slave_config(flctl->chan_fifo0_tx, &cfg); if (ret < 0) @@ -176,7 +176,7 @@ static void flctl_setup_dma(struct sh_flctl *flctl) cfg.direction = DMA_DEV_TO_MEM; cfg.dst_addr = 0; - cfg.src_addr = (dma_addr_t)FLDTFIFO(flctl); + cfg.src_addr = flctl->fifo; ret = dmaengine_slave_config(flctl->chan_fifo0_rx, &cfg); if (ret < 0) goto err; @@ -1095,6 +1095,7 @@ static int flctl_probe(struct platform_device *pdev) flctl->reg = devm_ioremap_resource(&pdev->dev, res); if (IS_ERR(flctl->reg)) return PTR_ERR(flctl->reg); + flctl->fifo = res->start + 0x24; /* FLDTFIFO */ irq = platform_get_irq(pdev, 0); if (irq < 0) { diff --git a/include/linux/mtd/sh_flctl.h b/include/linux/mtd/sh_flctl.h index 1c28f8879b1c..067b37aff4a1 100644 --- a/include/linux/mtd/sh_flctl.h +++ b/include/linux/mtd/sh_flctl.h @@ -148,6 +148,7 @@ struct sh_flctl { struct platform_device *pdev; struct dev_pm_qos_request pm_qos; void __iomem *reg; + resource_size_t fifo; uint8_t done_buff[2048 + 64]; /* max size 2048 + 64 */ int read_bytes;