From patchwork Tue Jul 25 15:25:47 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 108649 Delivered-To: patch@linaro.org Received: by 10.140.101.44 with SMTP id t41csp698113qge; Tue, 25 Jul 2017 08:26:55 -0700 (PDT) X-Received: by 10.98.33.212 with SMTP id o81mr1068058pfj.50.1500996415050; Tue, 25 Jul 2017 08:26:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1500996415; cv=none; d=google.com; s=arc-20160816; b=V8gn4kXatgO4x1JV8oSBmaNBVf+Jz8WfUcoWK3uFTC/6aV+KKzudku4sZZQrITzzUG ragElV4QEyvgT0wMQCCZTp1uMj4qfqMQnB/Q1ljC+rCDvJhIzGQZIW92/OPLohkdPIZF Ydeb/LcKcDb75OZgCuEmZi1MB4fiaDw10pve1hJnF2CmnJxd7RShQDFKuAj863zf2RZU 1vszz9wM2fDYv+DRI14CA0Nh+OYxAPV1a1C41IHrboIjLGUgIzDC3wvsncn/fYCHDT6k aXDuwyXvv9Lev5hO1vJp39f3KDZEckzgPrkWFQHzIIV+rR2Qkr3wy0n2z9tbY1Cimkvm p6Hw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=zgdHIspYzHjHj/gM4gHlAXCtO9JVexAOs5donVCBfo8=; b=NBduq5GpdRT7YebrUe7cJ2U0ERhOFhOy+5/i3VdFiclmQ43dcM9gmWwu1lm1o9pv08 saXSr/ozuaErXzekuK1EK8L02WJJM0s1wF+EnfCQMC537RH3PSlBbc3dbyGRdg8Vl+BE ZwhgzQK1o19iifYOcenoY6st8qppdXy721/SIUz0MEjCQI89ynsqp8rfGQw6keVZa8L9 J+Zp/gRWWGybDccU+Volr5DYZ0lMYXQPnc2m0SDwSp+mSnDqJITIX1l1u8jLuh0v/Lhu adh6QZlhvAKlHPAWRdrNs4++axhmdXg65yjlJsh+yeeoRnBkiOzTbp4K+KTVVT1mXyvb wEEw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 189si8437484pga.649.2017.07.25.08.26.54; Tue, 25 Jul 2017 08:26:55 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752498AbdGYP0w (ORCPT + 26 others); Tue, 25 Jul 2017 11:26:52 -0400 Received: from mout.kundenserver.de ([212.227.126.130]:52682 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752405AbdGYP0u (ORCPT ); Tue, 25 Jul 2017 11:26:50 -0400 Received: from wuerfel.lan ([5.56.224.194]) by mrelayeu.kundenserver.de (mreue001 [212.227.15.129]) with ESMTPA (Nemesis) id 0Mbour-1dGzIy3pIr-00IzD3; Tue, 25 Jul 2017 17:26:18 +0200 From: Arnd Bergmann To: Daniel Mack , Haojian Zhuang , Robert Jarzmik Cc: Arnd Bergmann , Russell King , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v2] ARM: sa1100/pxa: fix MTD_XIP build Date: Tue, 25 Jul 2017 17:25:47 +0200 Message-Id: <20170725152616.4143857-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 X-Provags-ID: V03:K0:UCkQg9cyVgYAT5SfjTJbvdrhGE6MqDYq7ZQH8kwty5QxvDjMdwO V7JubQPmEykjekw4iEwMoF6iAPpEGQlAvElima1gC6Bx/cfyQXhVqHzbiaQx5jSMjDs5oEC Yd1uJfUswuhjbGRVesJ5STjfnO0di0eoTSU17jb7v8U0bzFr5f9AC/8bE/dX4ozaIOpuv0u /rrAAwdMdCgb33JwheDEA== X-UI-Out-Filterresults: notjunk:1; V01:K0:sp35nl9i0t4=:KSYOhco+AQ6kb5PJsV9agc 3j7jrZ1ouSu+vdllTBgYWAGj0iPyZc1iJQ5dNPRaK3b1YBKNOxRLTD1NE5Zeoe33Tg7xwuNkb Fbo8sAMPNfv/2WWn6R8OoLdzfO/94FSXJ4gsUMs2+Szfpbv4+v8AxE9ivsNsLl/eRAto9wUP6 DLJIT7ppklEt1f3oEct0NFjFqxH/9vmtqxRUP7lUrsN9OYOrxajvKgoYmbQoOGigRq/wT15ym juDbp69o9DqGoIvqTilCmlAb44EfTLgj7DkQhvZR9Tgbb7hIbVgAoKJdQW183H1wXajegtGTy W2fvuzNjMznyo/3JTYdCWTFyfujgPgMTy8Am8T6FB+YQ3zN3Ws8osEtqXcrJO0CWZHxWxTYEh YpC4Fwls8g5CuLkozdLoBHLu53SmtHJbGuqwc0FJGRTo3jxBTdGPDqwSpxnByMXztFCjrD7rS 9gY+3QBWpduRzVM6iyGmoOU+lGJnsH2JitGRpViD7cmPYuLi6qYj4yXQBcD8m1K2oz7M4Pv8H sd9R9Fg4KiWCr1ekOloDVI7s2QYbqARLHPYCVWUROX+w4+9ifEctdn2m9lUqWAhhedNkOSNM4 eTezlxgPXbD3sSHNYanIyn1G2Y2PWlkwG6NU4QsqtSDhzbf0YLx/NWR6SwgORZQodNtX4aKn3 zubAGFOtxoK0yS1Q1VRVSRb75oe5b8NJKyZTRSNpCHm5n1/q4krYQMtRgTYa21eqC3hBB9Z0n fm1mGkW2R/tij2EdkVXPdLp+1s8TsokZfLhMWA== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In commit 3169663ac5902 "ARM: sa11x0/pxa: convert OS timer registers to IOMEM", the definition of the OSCR macro was changed to be an __iomem pointer, but the same register is also used by the XIP code. This patch does the corresponding change here as well. On PXA, the IRQ register definitions were removed even earlier, in commit 5d284e353eb1 ("ARM: pxa: avoid accessing interrupt registers directly"). This patch unfortunately brings some of that back. An earlier version of my patch moved the code into an external function, which could not work for CONFIG_XIP_KERNEL+CONFIG_MTD_XIP, so this restores something close to the original code. Link: http://lists.infradead.org/pipermail/linux-arm-kernel/2014-March/241716.html Signed-off-by: Arnd Bergmann Cc: Russell King Cc: Robert Jarzmik --- v2: add back outer () as Robert suggested --- arch/arm/mach-pxa/include/mach/mtd-xip.h | 10 +++++++--- arch/arm/mach-sa1100/include/mach/mtd-xip.h | 4 ++-- 2 files changed, 9 insertions(+), 5 deletions(-) -- 2.9.0 Acked-by: Robert Jarzmik diff --git a/arch/arm/mach-pxa/include/mach/mtd-xip.h b/arch/arm/mach-pxa/include/mach/mtd-xip.h index 990d2bf2fb45..9bf4ea6a6f74 100644 --- a/arch/arm/mach-pxa/include/mach/mtd-xip.h +++ b/arch/arm/mach-pxa/include/mach/mtd-xip.h @@ -17,11 +17,15 @@ #include -#define xip_irqpending() (ICIP & ICMR) +/* restored July 2017, this did not build since 2011! */ + +#define ICIP io_p2v(0x40d00000) +#define ICMR io_p2v(0x40d00004) +#define xip_irqpending() (readl(ICIP) & readl(ICMR)) /* we sample OSCR and convert desired delta to usec (1/4 ~= 1000000/3686400) */ -#define xip_currtime() (OSCR) -#define xip_elapsed_since(x) (signed)((OSCR - (x)) / 4) +#define xip_currtime() readl(OSCR) +#define xip_elapsed_since(x) (signed)((readl(OSCR) - (x)) / 4) /* * xip_cpu_idle() is used when waiting for a delay equal or larger than diff --git a/arch/arm/mach-sa1100/include/mach/mtd-xip.h b/arch/arm/mach-sa1100/include/mach/mtd-xip.h index b3d684098fbf..cb76096a2e36 100644 --- a/arch/arm/mach-sa1100/include/mach/mtd-xip.h +++ b/arch/arm/mach-sa1100/include/mach/mtd-xip.h @@ -20,7 +20,7 @@ #define xip_irqpending() (ICIP & ICMR) /* we sample OSCR and convert desired delta to usec (1/4 ~= 1000000/3686400) */ -#define xip_currtime() (OSCR) -#define xip_elapsed_since(x) (signed)((OSCR - (x)) / 4) +#define xip_currtime() readl_relaxed(OSCR) +#define xip_elapsed_since(x) (signed)((readl_relaxed(OSCR) - (x)) / 4) #endif /* __ARCH_SA1100_MTD_XIP_H__ */