mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	ARM: create a common IOMEM definition
Several platforms create IOMEM defines for casting to 'void __iomem *', and other platforms are incorrectly using __io() macro for the same purpose. This creates a common definition and removes all the platform specific versions. Rather than try to make linux/io.h and asm/io.h assembly safe, the assembly version of IOMEM is moved into asm/assembler.h. Signed-off-by: Rob Herring <rob.herring@calxeda.com> Cc: Russell King <linux@arm.linux.org.uk> Cc: Sekhar Nori <nsekhar@ti.com> Cc: Kevin Hilman <khilman@ti.com> Acked-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ryan Mallon <rmallon@gmail.com> Cc: Eric Miao <eric.y.miao@gmail.com> Cc: Haojian Zhuang <haojian.zhuang@marvell.com> Acked-by: David Brown <davidb@codeaurora.org> Cc: Daniel Walker <dwalker@fifo99.com> Cc: Bryan Huntsman <bryanh@codeaurora.org> Cc: Sascha Hauer <kernel@pengutronix.de> Cc: Shawn Guo <shawn.guo@linaro.org> Acked-by: Tony Lindgren <tony@atomide.com> Acked-by: Paul Walmsley <paul@pwsan.com> Acked-by: Viresh Kumar <viresh.kumar@st.com> Cc: Rajeev Kumar <rajeev-dlh.kumar@st.com> Cc: Colin Cross <ccross@android.com> Cc: Olof Johansson <olof@lixom.net> Cc: Stephen Warren <swarren@nvidia.com> Acked-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
		
							parent
							
								
									6f71e9213c
								
							
						
					
					
						commit
						6f6f6a7029
					
				
					 25 changed files with 13 additions and 88 deletions
				
			
		| 
						 | 
				
			
			@ -23,6 +23,8 @@
 | 
			
		|||
#include <asm/ptrace.h>
 | 
			
		||||
#include <asm/domain.h>
 | 
			
		||||
 | 
			
		||||
#define IOMEM(x)	(x)
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Endian independent macros for shifting bytes within registers.
 | 
			
		||||
 */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -102,6 +102,8 @@ static inline void __iomem *__typesafe_io(unsigned long addr)
 | 
			
		|||
	return (void __iomem *)addr;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#define IOMEM(x)	((void __force __iomem *)(x))
 | 
			
		||||
 | 
			
		||||
/* IO barriers */
 | 
			
		||||
#ifdef CONFIG_ARM_DMA_MEM_BUFFERABLE
 | 
			
		||||
#define __iormb()		rmb()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,6 +10,7 @@
 | 
			
		|||
 *  32-bit debugging code
 | 
			
		||||
 */
 | 
			
		||||
#include <linux/linkage.h>
 | 
			
		||||
#include <asm/assembler.h>
 | 
			
		||||
 | 
			
		||||
		.text
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,6 +15,7 @@
 | 
			
		|||
 *  that causes it to save wrong values...  Be aware!
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <asm/assembler.h>
 | 
			
		||||
#include <asm/memory.h>
 | 
			
		||||
#include <asm/glue-df.h>
 | 
			
		||||
#include <asm/glue-pf.h>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -32,10 +32,4 @@
 | 
			
		|||
#define __IO_ADDRESS(x)			((x) + IO_OFFSET)
 | 
			
		||||
#define IO_ADDRESS(pa)			IOMEM(__IO_ADDRESS(pa))
 | 
			
		||||
 | 
			
		||||
#ifdef __ASSEMBLER__
 | 
			
		||||
#define IOMEM(x)                	x
 | 
			
		||||
#else
 | 
			
		||||
#define IOMEM(x)                	((void __force __iomem *)(x))
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif /* __ASM_ARCH_HARDWARE_H */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -25,6 +25,8 @@
 | 
			
		|||
 | 
			
		||||
#include <mach/serial.h>
 | 
			
		||||
 | 
			
		||||
#define IOMEM(x)	((void __force __iomem *)(x))
 | 
			
		||||
 | 
			
		||||
u32 *uart;
 | 
			
		||||
 | 
			
		||||
/* PORT_16C550A, in polled non-fifo mode */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,15 +5,6 @@
 | 
			
		|||
#ifndef __ASM_ARCH_EP93XX_REGS_H
 | 
			
		||||
#define __ASM_ARCH_EP93XX_REGS_H
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * A typesafe __io() variation for variable initialisers
 | 
			
		||||
 */
 | 
			
		||||
#ifdef __ASSEMBLER__
 | 
			
		||||
#define IOMEM(p)                p
 | 
			
		||||
#else
 | 
			
		||||
#define IOMEM(p)                ((void __iomem __force *)(p))
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * EP93xx Physical Memory Map:
 | 
			
		||||
 *
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,12 +11,6 @@
 | 
			
		|||
#ifndef __ASM_MACH_ADDR_MAP_H
 | 
			
		||||
#define __ASM_MACH_ADDR_MAP_H
 | 
			
		||||
 | 
			
		||||
#ifndef __ASSEMBLER__
 | 
			
		||||
#define IOMEM(x)	((void __iomem *)(x))
 | 
			
		||||
#else
 | 
			
		||||
#define IOMEM(x)	(x)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* APB - Application Subsystem Peripheral Bus
 | 
			
		||||
 *
 | 
			
		||||
 * NOTE: the DMA controller registers are actually on the AXI fabric #1
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -38,12 +38,6 @@
 | 
			
		|||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifdef __ASSEMBLY__
 | 
			
		||||
#define IOMEM(x)	x
 | 
			
		||||
#else
 | 
			
		||||
#define IOMEM(x)	((void __force __iomem *)(x))
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define MSM_VIC_BASE          IOMEM(0xE0000000)
 | 
			
		||||
#define MSM_VIC_PHYS          0xC0000000
 | 
			
		||||
#define MSM_VIC_SIZE          SZ_4K
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -37,12 +37,6 @@
 | 
			
		|||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifdef __ASSEMBLY__
 | 
			
		||||
#define IOMEM(x)	x
 | 
			
		||||
#else
 | 
			
		||||
#define IOMEM(x)	((void __force __iomem *)(x))
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(CONFIG_ARCH_MSM7X30)
 | 
			
		||||
#include "msm_iomap-7x30.h"
 | 
			
		||||
#elif defined(CONFIG_ARCH_QSD8X50)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,10 +20,4 @@
 | 
			
		|||
#ifndef __MACH_MXS_HARDWARE_H__
 | 
			
		||||
#define __MACH_MXS_HARDWARE_H__
 | 
			
		||||
 | 
			
		||||
#ifdef __ASSEMBLER__
 | 
			
		||||
#define IOMEM(addr)	(addr)
 | 
			
		||||
#else
 | 
			
		||||
#define IOMEM(addr)	((void __force __iomem *)(addr))
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif /* __MACH_MXS_HARDWARE_H__ */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,6 +14,7 @@
 | 
			
		|||
 */
 | 
			
		||||
 | 
			
		||||
#include <linux/linkage.h>
 | 
			
		||||
#include <asm/assembler.h>
 | 
			
		||||
 | 
			
		||||
#include <plat/board-ams-delta.h>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,12 +22,6 @@
 | 
			
		|||
 * 675 Mass Ave, Cambridge, MA 02139, USA.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifdef __ASSEMBLER__
 | 
			
		||||
#define IOMEM(x)		(x)
 | 
			
		||||
#else
 | 
			
		||||
#define IOMEM(x)		((void __force __iomem *)(x))
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define OMAP1_IO_OFFSET		0x01000000	/* Virtual IO = 0xfefb0000 */
 | 
			
		||||
#define OMAP1_IO_ADDRESS(pa)	IOMEM((pa) - OMAP1_IO_OFFSET)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -19,6 +19,7 @@
 | 
			
		|||
#include <linux/kernel.h>
 | 
			
		||||
#include <linux/clk.h>
 | 
			
		||||
#include <linux/list.h>
 | 
			
		||||
#include <linux/io.h>
 | 
			
		||||
 | 
			
		||||
#include <plat/hardware.h>
 | 
			
		||||
#include <plat/clkdev_omap.h>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -26,6 +26,7 @@
 | 
			
		|||
#include <linux/kernel.h>
 | 
			
		||||
#include <linux/list.h>
 | 
			
		||||
#include <linux/clk.h>
 | 
			
		||||
#include <linux/io.h>
 | 
			
		||||
 | 
			
		||||
#include <plat/hardware.h>
 | 
			
		||||
#include <plat/clkdev_omap.h>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,12 +22,6 @@
 | 
			
		|||
 * 675 Mass Ave, Cambridge, MA 02139, USA.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifdef __ASSEMBLER__
 | 
			
		||||
#define IOMEM(x)		(x)
 | 
			
		||||
#else
 | 
			
		||||
#define IOMEM(x)		((void __force __iomem *)(x))
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define OMAP2_L3_IO_OFFSET	0x90000000
 | 
			
		||||
#define OMAP2_L3_IO_ADDRESS(pa)	IOMEM((pa) + OMAP2_L3_IO_OFFSET) /* L3 */
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,12 +14,6 @@
 | 
			
		|||
 | 
			
		||||
#include <mach/memory.h>
 | 
			
		||||
 | 
			
		||||
#ifndef __ASSEMBLY__
 | 
			
		||||
#define IOMEM(x) ((void __iomem *)(unsigned long)(x))
 | 
			
		||||
#else
 | 
			
		||||
#define IOMEM(x) x
 | 
			
		||||
#endif /* __ASSEMBLY__ */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * What hardware must be present
 | 
			
		||||
 */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,6 +12,7 @@
 | 
			
		|||
 */
 | 
			
		||||
 | 
			
		||||
#include <linux/init.h>
 | 
			
		||||
#include <linux/io.h>
 | 
			
		||||
#include <linux/kernel.h>
 | 
			
		||||
#include <asm/mach-types.h>
 | 
			
		||||
#include <plat/clock.h>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,6 +12,7 @@
 | 
			
		|||
 */
 | 
			
		||||
 | 
			
		||||
#include <linux/init.h>
 | 
			
		||||
#include <linux/io.h>
 | 
			
		||||
#include <linux/kernel.h>
 | 
			
		||||
#include <plat/clock.h>
 | 
			
		||||
#include <mach/misc_regs.h>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -281,12 +281,6 @@
 | 
			
		|||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifdef __ASSEMBLY__
 | 
			
		||||
#define IOMEM(x)	(x)
 | 
			
		||||
#else
 | 
			
		||||
#define IOMEM(x)	((void __force __iomem *)(x))
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define IO_IRAM_PHYS	0x40000000
 | 
			
		||||
#define IO_IRAM_VIRT	IOMEM(0xFE400000)
 | 
			
		||||
#define IO_IRAM_SIZE	SZ_256K
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,12 +18,6 @@
 | 
			
		|||
 * the defines are used for setting up the I/O memory mapping.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifdef __ASSEMBLER__
 | 
			
		||||
#define IOMEM(a) (a)
 | 
			
		||||
#else
 | 
			
		||||
#define IOMEM(a) (void __iomem *) a
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* NAND Flash CS0 */
 | 
			
		||||
#define U300_NAND_CS0_PHYS_BASE		0x80000000
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,12 +22,6 @@
 | 
			
		|||
 | 
			
		||||
#include <asm/sizes.h>
 | 
			
		||||
 | 
			
		||||
#ifdef __ASSEMBLER__
 | 
			
		||||
#define IOMEM(addr)	(addr)
 | 
			
		||||
#else
 | 
			
		||||
#define IOMEM(addr)	((void __force __iomem *)(addr))
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define addr_in_module(addr, mod) \
 | 
			
		||||
	((unsigned long)(addr) - mod ## _BASE_ADDR < mod ## _SIZE)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -43,12 +43,6 @@
 | 
			
		|||
#endif
 | 
			
		||||
#include <plat/serial.h>
 | 
			
		||||
 | 
			
		||||
#ifdef __ASSEMBLER__
 | 
			
		||||
#define IOMEM(x)		(x)
 | 
			
		||||
#else
 | 
			
		||||
#define IOMEM(x)		((void __force __iomem *)(x))
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * ---------------------------------------------------------------------------
 | 
			
		||||
 * Common definitions for all OMAP processors
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -112,7 +112,6 @@ extern int omap4430_phy_suspend(struct device *dev, int suspend);
 | 
			
		|||
 */
 | 
			
		||||
 | 
			
		||||
#define OMAP2_L4_IO_OFFSET	0xb2000000
 | 
			
		||||
#define IOMEM(x)		((void __force __iomem *)(x))
 | 
			
		||||
#define OMAP2_L4_IO_ADDRESS(pa)	IOMEM((pa) + OMAP2_L4_IO_OFFSET)
 | 
			
		||||
 | 
			
		||||
static inline u8 omap_readb(u32 pa)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,10 +14,4 @@
 | 
			
		|||
#ifndef __PLAT_HARDWARE_H
 | 
			
		||||
#define __PLAT_HARDWARE_H
 | 
			
		||||
 | 
			
		||||
#ifndef __ASSEMBLY__
 | 
			
		||||
#define IOMEM(x)	((void __iomem __force *)(x))
 | 
			
		||||
#else
 | 
			
		||||
#define IOMEM(x)	(x)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif /* __PLAT_HARDWARE_H */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue