Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965772AbdGTPwo (ORCPT ); Thu, 20 Jul 2017 11:52:44 -0400 Received: from mout.kundenserver.de ([212.227.126.133]:62311 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965731AbdGTPwm (ORCPT ); Thu, 20 Jul 2017 11:52:42 -0400 From: Arnd Bergmann To: Daniel Mack , Haojian Zhuang , Robert Jarzmik Cc: Arnd Bergmann , Russell King , Russell King , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 04/12] ARM: sa1100/pxa: fix MTD_XIP build Date: Thu, 20 Jul 2017 17:51:42 +0200 Message-Id: <20170720155209.3250880-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 In-Reply-To: <20170720154616.3250481-1-arnd@arndb.de> References: <20170720154616.3250481-1-arnd@arndb.de> X-Provags-ID: V03:K0:nsAPDsax1514ewxSL4MwFu0e26zpLw6em6Se8cawkSRHFXKvOJ9 75a0YQ8LKnFb1nPwb53pDN3oSjSgHLeVQ5kvkpIyggZKf18eIQoTCs/d7z0d62KE5biAy0c lCjQ2rT1hkkLZcw3hNhUc6osIIvTAznWlJHtl6w1ydvgMNrQ0AVGnrzETrd+UBfoVHxthxW FIrOLcHZ5opgQigzj8Cww== X-UI-Out-Filterresults: notjunk:1;V01:K0:XYAzemTyLZU=:9JfVBBLkoy6iyyuKLxbEy2 /e8RsLxkIDZp7HqMscV5fnSct7zcffzD+PG5GEoPxrgrErI6ewuNojI/8yIaUKq4e5fb+P7Aq UHCWVRRZCRWHhgA3qlMUeF9RXdX7sDh73j8kyr11R/lU7jaNVYKQYj4ik81bdFVOEp9+bHV56 tvTgMjXC6eDvC/Iu5V2oPEgtnWg4VdCmL3gHnybB1CFhiA5PtmMNfdLOBZQFeOl0tT4qK2Hc2 Vu+hX8ekiIHQTk1eSAp0Q08+erQygBBIop70qEFwcYzq3aHKg0rRhQ+sgqDIXkghxlEuwm/uU ucVuDNkEA8qVD+VlHvVPLLjsQvuqF8/ps2FH5g9yjlcA1UBoR3A/mmyQDr3n45G47yuLrUur+ rn8wYnOTy0Xq3WxUk56tt8pTXyY+QPhnGaz2y+gFq8Fq42H92NhpXctH7yiL1nI1xihwKMema NclmKaJaS43xfgeuWJmQMWe1U+R6v6KNPrFsheqXD08rNcED++vieKM/UTZluw7EAjeC2i3s5 4RuztN7EJtt6YWl0Sc8gLJLpI5SCMkDWAagh0hfNQv3D73cO7ynSYfpppYnPMv0ut8X9Gg+TM q9upKY2CK8239fFX3IS7d6QY0XfGx636FleCz94AEvPK9RhA6EoVlashSI/eQD5G6DwGVuw+d Fui9tL9RHwUDKVkbqL95h8ZCUsempWV4YIybJMs/Cu6otYx3KidT1gZv8r2qyBK9yTzJR54sT B+nyWKCd5JWg7g4jAWd4c6IGBQKAsTh3+XIZcg== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2489 Lines: 60 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 --- --- 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..f0d40bd36bac 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