Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752497AbdGYP0w (ORCPT ); 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 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 List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2578 Lines: 63 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(-) 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__ */ -- 2.9.0