Browse Source

Merge branch 'io-cleanup-for-3.4' of git://sources.calxeda.com/kernel/linux into next/cleanup2

* 'io-cleanup-for-3.4' of git://sources.calxeda.com/kernel/linux:
  ARM: __io abuse cleanup
  ARM: create a common IOMEM definition
  ARM: iop13xx: fix missing declaration of iop13xx_init_early
  ARM: fix ioremap/iounmap for !CONFIG_MMU
Olof Johansson 13 years ago
parent
commit
accf709b39
41 changed files with 56 additions and 126 deletions
  1. 2 0
      arch/arm/include/asm/assembler.h
  2. 2 0
      arch/arm/include/asm/io.h
  3. 1 0
      arch/arm/kernel/debug.S
  4. 1 0
      arch/arm/kernel/entry-armv.S
  5. 4 4
      arch/arm/mach-cns3xxx/core.c
  6. 1 1
      arch/arm/mach-cns3xxx/devices.c
  7. 0 6
      arch/arm/mach-davinci/include/mach/hardware.h
  8. 2 0
      arch/arm/mach-davinci/include/mach/uncompress.h
  9. 0 9
      arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h
  10. 1 0
      arch/arm/mach-iop13xx/include/mach/iop13xx.h
  11. 0 6
      arch/arm/mach-mmp/include/mach/addr-map.h
  12. 0 6
      arch/arm/mach-msm/include/mach/msm_iomap-7x00.h
  13. 0 6
      arch/arm/mach-msm/include/mach/msm_iomap.h
  14. 0 6
      arch/arm/mach-mxs/include/mach/hardware.h
  15. 1 1
      arch/arm/mach-netx/generic.c
  16. 1 1
      arch/arm/mach-netx/include/mach/hardware.h
  17. 8 8
      arch/arm/mach-netx/include/mach/netx-regs.h
  18. 1 0
      arch/arm/mach-omap1/ams-delta-fiq-handler.S
  19. 0 6
      arch/arm/mach-omap1/iomap.h
  20. 1 0
      arch/arm/mach-omap2/clock3xxx_data.c
  21. 1 0
      arch/arm/mach-omap2/clock44xx_data.c
  22. 0 6
      arch/arm/mach-omap2/iomap.h
  23. 1 1
      arch/arm/mach-realview/include/mach/hardware.h
  24. 0 6
      arch/arm/mach-rpc/include/mach/hardware.h
  25. 1 1
      arch/arm/mach-shmobile/board-ag5evm.c
  26. 1 1
      arch/arm/mach-shmobile/board-bonito.c
  27. 1 1
      arch/arm/mach-shmobile/board-kota2.c
  28. 2 2
      arch/arm/mach-shmobile/intc-r8a7779.c
  29. 2 2
      arch/arm/mach-shmobile/intc-sh73a0.c
  30. 2 2
      arch/arm/mach-shmobile/smp-r8a7779.c
  31. 10 10
      arch/arm/mach-shmobile/smp-sh73a0.c
  32. 1 0
      arch/arm/mach-spear3xx/clock.c
  33. 1 0
      arch/arm/mach-spear6xx/clock.c
  34. 0 6
      arch/arm/mach-tegra/include/mach/iomap.h
  35. 0 6
      arch/arm/mach-u300/include/mach/u300-regs.h
  36. 1 1
      arch/arm/mach-ux500/include/mach/hardware.h
  37. 6 2
      arch/arm/mm/nommu.c
  38. 0 6
      arch/arm/plat-mxc/include/mach/hardware.h
  39. 0 6
      arch/arm/plat-omap/include/plat/hardware.h
  40. 0 1
      arch/arm/plat-omap/include/plat/usb.h
  41. 0 6
      arch/arm/plat-spear/include/plat/hardware.h

+ 2 - 0
arch/arm/include/asm/assembler.h

@@ -23,6 +23,8 @@
 #include <asm/ptrace.h>
 #include <asm/ptrace.h>
 #include <asm/domain.h>
 #include <asm/domain.h>
 
 
+#define IOMEM(x)	(x)
+
 /*
 /*
  * Endian independent macros for shifting bytes within registers.
  * Endian independent macros for shifting bytes within registers.
  */
  */

+ 2 - 0
arch/arm/include/asm/io.h

@@ -102,6 +102,8 @@ static inline void __iomem *__typesafe_io(unsigned long addr)
 	return (void __iomem *)addr;
 	return (void __iomem *)addr;
 }
 }
 
 
+#define IOMEM(x)	((void __force __iomem *)(x))
+
 /* IO barriers */
 /* IO barriers */
 #ifdef CONFIG_ARM_DMA_MEM_BUFFERABLE
 #ifdef CONFIG_ARM_DMA_MEM_BUFFERABLE
 #define __iormb()		rmb()
 #define __iormb()		rmb()

+ 1 - 0
arch/arm/kernel/debug.S

@@ -10,6 +10,7 @@
  *  32-bit debugging code
  *  32-bit debugging code
  */
  */
 #include <linux/linkage.h>
 #include <linux/linkage.h>
+#include <asm/assembler.h>
 
 
 		.text
 		.text
 
 

+ 1 - 0
arch/arm/kernel/entry-armv.S

@@ -15,6 +15,7 @@
  *  that causes it to save wrong values...  Be aware!
  *  that causes it to save wrong values...  Be aware!
  */
  */
 
 
+#include <asm/assembler.h>
 #include <asm/memory.h>
 #include <asm/memory.h>
 #include <asm/glue-df.h>
 #include <asm/glue-df.h>
 #include <asm/glue-pf.h>
 #include <asm/glue-pf.h>

+ 4 - 4
arch/arm/mach-cns3xxx/core.c

@@ -72,13 +72,13 @@ void __init cns3xxx_map_io(void)
 /* used by entry-macro.S */
 /* used by entry-macro.S */
 void __init cns3xxx_init_irq(void)
 void __init cns3xxx_init_irq(void)
 {
 {
-	gic_init(0, 29, __io(CNS3XXX_TC11MP_GIC_DIST_BASE_VIRT),
-		 __io(CNS3XXX_TC11MP_GIC_CPU_BASE_VIRT));
+	gic_init(0, 29, IOMEM(CNS3XXX_TC11MP_GIC_DIST_BASE_VIRT),
+		 IOMEM(CNS3XXX_TC11MP_GIC_CPU_BASE_VIRT));
 }
 }
 
 
 void cns3xxx_power_off(void)
 void cns3xxx_power_off(void)
 {
 {
-	u32 __iomem *pm_base = __io(CNS3XXX_PM_BASE_VIRT);
+	u32 __iomem *pm_base = IOMEM(CNS3XXX_PM_BASE_VIRT);
 	u32 clkctrl;
 	u32 clkctrl;
 
 
 	printk(KERN_INFO "powering system down...\n");
 	printk(KERN_INFO "powering system down...\n");
@@ -237,7 +237,7 @@ static void __init __cns3xxx_timer_init(unsigned int timer_irq)
 
 
 static void __init cns3xxx_timer_init(void)
 static void __init cns3xxx_timer_init(void)
 {
 {
-	cns3xxx_tmr1 = __io(CNS3XXX_TIMER1_2_3_BASE_VIRT);
+	cns3xxx_tmr1 = IOMEM(CNS3XXX_TIMER1_2_3_BASE_VIRT);
 
 
 	__cns3xxx_timer_init(IRQ_CNS3XXX_TIMER0);
 	__cns3xxx_timer_init(IRQ_CNS3XXX_TIMER0);
 }
 }

+ 1 - 1
arch/arm/mach-cns3xxx/devices.c

@@ -98,7 +98,7 @@ static struct platform_device cns3xxx_sdhci_pdev = {
 
 
 void __init cns3xxx_sdhci_init(void)
 void __init cns3xxx_sdhci_init(void)
 {
 {
-	u32 __iomem *gpioa = __io(CNS3XXX_MISC_BASE_VIRT + 0x0014);
+	u32 __iomem *gpioa = IOMEM(CNS3XXX_MISC_BASE_VIRT + 0x0014);
 	u32 gpioa_pins = __raw_readl(gpioa);
 	u32 gpioa_pins = __raw_readl(gpioa);
 
 
 	/* MMC/SD pins share with GPIOA */
 	/* MMC/SD pins share with GPIOA */

+ 0 - 6
arch/arm/mach-davinci/include/mach/hardware.h

@@ -32,10 +32,4 @@
 #define __IO_ADDRESS(x)			((x) + IO_OFFSET)
 #define __IO_ADDRESS(x)			((x) + IO_OFFSET)
 #define IO_ADDRESS(pa)			IOMEM(__IO_ADDRESS(pa))
 #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 */
 #endif /* __ASM_ARCH_HARDWARE_H */

+ 2 - 0
arch/arm/mach-davinci/include/mach/uncompress.h

@@ -25,6 +25,8 @@
 
 
 #include <mach/serial.h>
 #include <mach/serial.h>
 
 
+#define IOMEM(x)	((void __force __iomem *)(x))
+
 u32 *uart;
 u32 *uart;
 
 
 /* PORT_16C550A, in polled non-fifo mode */
 /* PORT_16C550A, in polled non-fifo mode */

+ 0 - 9
arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h

@@ -5,15 +5,6 @@
 #ifndef __ASM_ARCH_EP93XX_REGS_H
 #ifndef __ASM_ARCH_EP93XX_REGS_H
 #define __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:
  * EP93xx Physical Memory Map:
  *
  *

+ 1 - 0
arch/arm/mach-iop13xx/include/mach/iop13xx.h

@@ -5,6 +5,7 @@
 /* The ATU offsets can change based on the strapping */
 /* The ATU offsets can change based on the strapping */
 extern u32 iop13xx_atux_pmmr_offset;
 extern u32 iop13xx_atux_pmmr_offset;
 extern u32 iop13xx_atue_pmmr_offset;
 extern u32 iop13xx_atue_pmmr_offset;
+void iop13xx_init_early(void);
 void iop13xx_init_irq(void);
 void iop13xx_init_irq(void);
 void iop13xx_map_io(void);
 void iop13xx_map_io(void);
 void iop13xx_platform_init(void);
 void iop13xx_platform_init(void);

+ 0 - 6
arch/arm/mach-mmp/include/mach/addr-map.h

@@ -11,12 +11,6 @@
 #ifndef __ASM_MACH_ADDR_MAP_H
 #ifndef __ASM_MACH_ADDR_MAP_H
 #define __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
 /* APB - Application Subsystem Peripheral Bus
  *
  *
  * NOTE: the DMA controller registers are actually on the AXI fabric #1
  * NOTE: the DMA controller registers are actually on the AXI fabric #1

+ 0 - 6
arch/arm/mach-msm/include/mach/msm_iomap-7x00.h

@@ -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_BASE          IOMEM(0xE0000000)
 #define MSM_VIC_PHYS          0xC0000000
 #define MSM_VIC_PHYS          0xC0000000
 #define MSM_VIC_SIZE          SZ_4K
 #define MSM_VIC_SIZE          SZ_4K

+ 0 - 6
arch/arm/mach-msm/include/mach/msm_iomap.h

@@ -37,12 +37,6 @@
  *
  *
  */
  */
 
 
-#ifdef __ASSEMBLY__
-#define IOMEM(x)	x
-#else
-#define IOMEM(x)	((void __force __iomem *)(x))
-#endif
-
 #if defined(CONFIG_ARCH_MSM7X30)
 #if defined(CONFIG_ARCH_MSM7X30)
 #include "msm_iomap-7x30.h"
 #include "msm_iomap-7x30.h"
 #elif defined(CONFIG_ARCH_QSD8X50)
 #elif defined(CONFIG_ARCH_QSD8X50)

+ 0 - 6
arch/arm/mach-mxs/include/mach/hardware.h

@@ -20,10 +20,4 @@
 #ifndef __MACH_MXS_HARDWARE_H__
 #ifndef __MACH_MXS_HARDWARE_H__
 #define __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__ */
 #endif /* __MACH_MXS_HARDWARE_H__ */

+ 1 - 1
arch/arm/mach-netx/generic.c

@@ -168,7 +168,7 @@ void __init netx_init_irq(void)
 {
 {
 	int irq;
 	int irq;
 
 
-	vic_init(__io(io_p2v(NETX_PA_VIC)), 0, ~0, 0);
+	vic_init(io_p2v(NETX_PA_VIC), 0, ~0, 0);
 
 
 	for (irq = NETX_IRQ_HIF_CHAINED(0); irq <= NETX_IRQ_HIF_LAST; irq++) {
 	for (irq = NETX_IRQ_HIF_CHAINED(0); irq <= NETX_IRQ_HIF_LAST; irq++) {
 		irq_set_chip_and_handler(irq, &netx_hif_chip,
 		irq_set_chip_and_handler(irq, &netx_hif_chip,

+ 1 - 1
arch/arm/mach-netx/include/mach/hardware.h

@@ -33,7 +33,7 @@
 #define XMAC_MEM_SIZE 0x1000
 #define XMAC_MEM_SIZE 0x1000
 #define SRAM_MEM_SIZE 0x8000
 #define SRAM_MEM_SIZE 0x8000
 
 
-#define io_p2v(x) ((x) - NETX_IO_PHYS + NETX_IO_VIRT)
+#define io_p2v(x) IOMEM((x) - NETX_IO_PHYS + NETX_IO_VIRT)
 #define io_v2p(x) ((x) - NETX_IO_VIRT + NETX_IO_PHYS)
 #define io_v2p(x) ((x) - NETX_IO_VIRT + NETX_IO_PHYS)
 
 
 #endif
 #endif

+ 8 - 8
arch/arm/mach-netx/include/mach/netx-regs.h

@@ -115,7 +115,7 @@
  *********************************/
  *********************************/
 
 
 /* Registers */
 /* Registers */
-#define NETX_SYSTEM_REG(ofs)            __io(NETX_VA_SYSTEM + (ofs))
+#define NETX_SYSTEM_REG(ofs)            IOMEM(NETX_VA_SYSTEM + (ofs))
 #define NETX_SYSTEM_BOO_SR          NETX_SYSTEM_REG(0x00)
 #define NETX_SYSTEM_BOO_SR          NETX_SYSTEM_REG(0x00)
 #define NETX_SYSTEM_IOC_CR          NETX_SYSTEM_REG(0x04)
 #define NETX_SYSTEM_IOC_CR          NETX_SYSTEM_REG(0x04)
 #define NETX_SYSTEM_IOC_MR          NETX_SYSTEM_REG(0x08)
 #define NETX_SYSTEM_IOC_MR          NETX_SYSTEM_REG(0x08)
@@ -185,7 +185,7 @@
  *******************************/
  *******************************/
 
 
 /* Registers */
 /* Registers */
-#define NETX_GPIO_REG(ofs)                     __io(NETX_VA_GPIO + (ofs))
+#define NETX_GPIO_REG(ofs)                     IOMEM(NETX_VA_GPIO + (ofs))
 #define NETX_GPIO_CFG(gpio)                NETX_GPIO_REG(0x0  + ((gpio)<<2))
 #define NETX_GPIO_CFG(gpio)                NETX_GPIO_REG(0x0  + ((gpio)<<2))
 #define NETX_GPIO_THRESHOLD_CAPTURE(gpio)  NETX_GPIO_REG(0x40 + ((gpio)<<2))
 #define NETX_GPIO_THRESHOLD_CAPTURE(gpio)  NETX_GPIO_REG(0x40 + ((gpio)<<2))
 #define NETX_GPIO_COUNTER_CTRL(counter)    NETX_GPIO_REG(0x80 + ((counter)<<2))
 #define NETX_GPIO_COUNTER_CTRL(counter)    NETX_GPIO_REG(0x80 + ((counter)<<2))
@@ -230,7 +230,7 @@
  *******************************/
  *******************************/
 
 
 /* Registers */
 /* Registers */
-#define NETX_PIO_REG(ofs)        __io(NETX_VA_PIO + (ofs))
+#define NETX_PIO_REG(ofs)        IOMEM(NETX_VA_PIO + (ofs))
 #define NETX_PIO_INPIO       NETX_PIO_REG(0x0)
 #define NETX_PIO_INPIO       NETX_PIO_REG(0x0)
 #define NETX_PIO_OUTPIO      NETX_PIO_REG(0x4)
 #define NETX_PIO_OUTPIO      NETX_PIO_REG(0x4)
 #define NETX_PIO_OEPIO       NETX_PIO_REG(0x8)
 #define NETX_PIO_OEPIO       NETX_PIO_REG(0x8)
@@ -240,7 +240,7 @@
  *******************************/
  *******************************/
 
 
 /* Registers */
 /* Registers */
-#define NETX_MIIMU           __io(NETX_VA_MIIMU)
+#define NETX_MIIMU           IOMEM(NETX_VA_MIIMU)
 
 
 /* Bits */
 /* Bits */
 #define MIIMU_SNRDY        (1<<0)
 #define MIIMU_SNRDY        (1<<0)
@@ -317,7 +317,7 @@
  *******************************/
  *******************************/
 
 
 /* Registers */
 /* Registers */
-#define NETX_PFIFO_REG(ofs)               __io(NETX_VA_PFIFO + (ofs))
+#define NETX_PFIFO_REG(ofs)               IOMEM(NETX_VA_PFIFO + (ofs))
 #define NETX_PFIFO_BASE(pfifo)        NETX_PFIFO_REG(0x00 + ((pfifo)<<2))
 #define NETX_PFIFO_BASE(pfifo)        NETX_PFIFO_REG(0x00 + ((pfifo)<<2))
 #define NETX_PFIFO_BORDER_BASE(pfifo) NETX_PFIFO_REG(0x80 + ((pfifo)<<2))
 #define NETX_PFIFO_BORDER_BASE(pfifo) NETX_PFIFO_REG(0x80 + ((pfifo)<<2))
 #define NETX_PFIFO_RESET              NETX_PFIFO_REG(0x100)
 #define NETX_PFIFO_RESET              NETX_PFIFO_REG(0x100)
@@ -334,7 +334,7 @@
  *******************************/
  *******************************/
 
 
 /* Registers */
 /* Registers */
-#define NETX_MEMCR_REG(ofs)               __io(NETX_VA_MEMCR + (ofs))
+#define NETX_MEMCR_REG(ofs)               IOMEM(NETX_VA_MEMCR + (ofs))
 #define NETX_MEMCR_SRAM_CTRL(cs)      NETX_MEMCR_REG(0x0 + 4 * (cs)) /* SRAM for CS 0..2 */
 #define NETX_MEMCR_SRAM_CTRL(cs)      NETX_MEMCR_REG(0x0 + 4 * (cs)) /* SRAM for CS 0..2 */
 #define NETX_MEMCR_SDRAM_CFG_CTRL     NETX_MEMCR_REG(0x40)
 #define NETX_MEMCR_SDRAM_CFG_CTRL     NETX_MEMCR_REG(0x40)
 #define NETX_MEMCR_SDRAM_TIMING_CTRL  NETX_MEMCR_REG(0x44)
 #define NETX_MEMCR_SDRAM_TIMING_CTRL  NETX_MEMCR_REG(0x44)
@@ -355,7 +355,7 @@
  *******************************/
  *******************************/
 
 
 /* Registers */
 /* Registers */
-#define NETX_DPMAS_REG(ofs)               __io(NETX_VA_DPMAS + (ofs))
+#define NETX_DPMAS_REG(ofs)               IOMEM(NETX_VA_DPMAS + (ofs))
 #define NETX_DPMAS_SYS_STAT           NETX_DPMAS_REG(0x4d8)
 #define NETX_DPMAS_SYS_STAT           NETX_DPMAS_REG(0x4d8)
 #define NETX_DPMAS_INT_STAT           NETX_DPMAS_REG(0x4e0)
 #define NETX_DPMAS_INT_STAT           NETX_DPMAS_REG(0x4e0)
 #define NETX_DPMAS_INT_EN             NETX_DPMAS_REG(0x4f0)
 #define NETX_DPMAS_INT_EN             NETX_DPMAS_REG(0x4f0)
@@ -425,7 +425,7 @@
 /*******************************
 /*******************************
  * I2C                         *
  * I2C                         *
  *******************************/
  *******************************/
-#define NETX_I2C_REG(ofs)	__io(NETX_VA_I2C, (ofs))
+#define NETX_I2C_REG(ofs)	IOMEM(NETX_VA_I2C, (ofs))
 #define NETX_I2C_CTRL	NETX_I2C_REG(0x0)
 #define NETX_I2C_CTRL	NETX_I2C_REG(0x0)
 #define NETX_I2C_DATA	NETX_I2C_REG(0x4)
 #define NETX_I2C_DATA	NETX_I2C_REG(0x4)
 
 

+ 1 - 0
arch/arm/mach-omap1/ams-delta-fiq-handler.S

@@ -14,6 +14,7 @@
  */
  */
 
 
 #include <linux/linkage.h>
 #include <linux/linkage.h>
+#include <asm/assembler.h>
 
 
 #include <plat/board-ams-delta.h>
 #include <plat/board-ams-delta.h>
 
 

+ 0 - 6
arch/arm/mach-omap1/iomap.h

@@ -22,12 +22,6 @@
  * 675 Mass Ave, Cambridge, MA 02139, USA.
  * 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_OFFSET		0x01000000	/* Virtual IO = 0xfefb0000 */
 #define OMAP1_IO_ADDRESS(pa)	IOMEM((pa) - OMAP1_IO_OFFSET)
 #define OMAP1_IO_ADDRESS(pa)	IOMEM((pa) - OMAP1_IO_OFFSET)
 
 

+ 1 - 0
arch/arm/mach-omap2/clock3xxx_data.c

@@ -19,6 +19,7 @@
 #include <linux/kernel.h>
 #include <linux/kernel.h>
 #include <linux/clk.h>
 #include <linux/clk.h>
 #include <linux/list.h>
 #include <linux/list.h>
+#include <linux/io.h>
 
 
 #include <plat/hardware.h>
 #include <plat/hardware.h>
 #include <plat/clkdev_omap.h>
 #include <plat/clkdev_omap.h>

+ 1 - 0
arch/arm/mach-omap2/clock44xx_data.c

@@ -26,6 +26,7 @@
 #include <linux/kernel.h>
 #include <linux/kernel.h>
 #include <linux/list.h>
 #include <linux/list.h>
 #include <linux/clk.h>
 #include <linux/clk.h>
+#include <linux/io.h>
 
 
 #include <plat/hardware.h>
 #include <plat/hardware.h>
 #include <plat/clkdev_omap.h>
 #include <plat/clkdev_omap.h>

+ 0 - 6
arch/arm/mach-omap2/iomap.h

@@ -22,12 +22,6 @@
  * 675 Mass Ave, Cambridge, MA 02139, USA.
  * 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_OFFSET	0x90000000
 #define OMAP2_L3_IO_ADDRESS(pa)	IOMEM((pa) + OMAP2_L3_IO_OFFSET) /* L3 */
 #define OMAP2_L3_IO_ADDRESS(pa)	IOMEM((pa) + OMAP2_L3_IO_OFFSET) /* L3 */
 
 

+ 1 - 1
arch/arm/mach-realview/include/mach/hardware.h

@@ -37,6 +37,6 @@
 #else
 #else
 #define IO_ADDRESS(x)		(x)
 #define IO_ADDRESS(x)		(x)
 #endif
 #endif
-#define __io_address(n)		__io(IO_ADDRESS(n))
+#define __io_address(n)		IOMEM(IO_ADDRESS(n))
 
 
 #endif
 #endif

+ 0 - 6
arch/arm/mach-rpc/include/mach/hardware.h

@@ -14,12 +14,6 @@
 
 
 #include <mach/memory.h>
 #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
  * What hardware must be present
  */
  */

+ 1 - 1
arch/arm/mach-shmobile/board-ag5evm.c

@@ -615,7 +615,7 @@ static void __init ag5evm_init(void)
 
 
 #ifdef CONFIG_CACHE_L2X0
 #ifdef CONFIG_CACHE_L2X0
 	/* Shared attribute override enable, 64K*8way */
 	/* Shared attribute override enable, 64K*8way */
-	l2x0_init(__io(0xf0100000), 0x00460000, 0xc2000fff);
+	l2x0_init(IOMEM(0xf0100000), 0x00460000, 0xc2000fff);
 #endif
 #endif
 	sh73a0_add_standard_devices();
 	sh73a0_add_standard_devices();
 	platform_add_devices(ag5evm_devices, ARRAY_SIZE(ag5evm_devices));
 	platform_add_devices(ag5evm_devices, ARRAY_SIZE(ag5evm_devices));

+ 1 - 1
arch/arm/mach-shmobile/board-bonito.c

@@ -394,7 +394,7 @@ static void __init bonito_init(void)
 
 
 #ifdef CONFIG_CACHE_L2X0
 #ifdef CONFIG_CACHE_L2X0
 	/* Early BRESP enable, Shared attribute override enable, 32K*8way */
 	/* Early BRESP enable, Shared attribute override enable, 32K*8way */
-	l2x0_init(__io(0xf0002000), 0x40440000, 0x82000fff);
+	l2x0_init(IOMEM(0xf0002000), 0x40440000, 0x82000fff);
 #endif
 #endif
 
 
 	r8a7740_add_standard_devices();
 	r8a7740_add_standard_devices();

+ 1 - 1
arch/arm/mach-shmobile/board-kota2.c

@@ -530,7 +530,7 @@ static void __init kota2_init(void)
 
 
 #ifdef CONFIG_CACHE_L2X0
 #ifdef CONFIG_CACHE_L2X0
 	/* Early BRESP enable, Shared attribute override enable, 64K*8way */
 	/* Early BRESP enable, Shared attribute override enable, 64K*8way */
-	l2x0_init(__io(0xf0100000), 0x40460000, 0x82000fff);
+	l2x0_init(IOMEM(0xf0100000), 0x40460000, 0x82000fff);
 #endif
 #endif
 	sh73a0_add_standard_devices();
 	sh73a0_add_standard_devices();
 	platform_add_devices(kota2_devices, ARRAY_SIZE(kota2_devices));
 	platform_add_devices(kota2_devices, ARRAY_SIZE(kota2_devices));

+ 2 - 2
arch/arm/mach-shmobile/intc-r8a7779.c

@@ -42,8 +42,8 @@ static int r8a7779_set_wake(struct irq_data *data, unsigned int on)
 
 
 void __init r8a7779_init_irq(void)
 void __init r8a7779_init_irq(void)
 {
 {
-	void __iomem *gic_dist_base = __io(0xf0001000);
-	void __iomem *gic_cpu_base = __io(0xf0000100);
+	void __iomem *gic_dist_base = IOMEM(0xf0001000);
+	void __iomem *gic_cpu_base = IOMEM(0xf0000100);
 
 
 	/* use GIC to handle interrupts */
 	/* use GIC to handle interrupts */
 	gic_init(0, 29, gic_dist_base, gic_cpu_base);
 	gic_init(0, 29, gic_dist_base, gic_cpu_base);

+ 2 - 2
arch/arm/mach-shmobile/intc-sh73a0.c

@@ -419,8 +419,8 @@ static irqreturn_t sh73a0_pint1_demux(int irq, void *dev_id)
 
 
 void __init sh73a0_init_irq(void)
 void __init sh73a0_init_irq(void)
 {
 {
-	void __iomem *gic_dist_base = __io(0xf0001000);
-	void __iomem *gic_cpu_base = __io(0xf0000100);
+	void __iomem *gic_dist_base = IOMEM(0xf0001000);
+	void __iomem *gic_cpu_base = IOMEM(0xf0000100);
 	void __iomem *intevtsa = ioremap_nocache(0xffd20100, PAGE_SIZE);
 	void __iomem *intevtsa = ioremap_nocache(0xffd20100, PAGE_SIZE);
 	int k, n;
 	int k, n;
 
 

+ 2 - 2
arch/arm/mach-shmobile/smp-r8a7779.c

@@ -30,7 +30,7 @@
 #include <asm/smp_twd.h>
 #include <asm/smp_twd.h>
 #include <asm/hardware/gic.h>
 #include <asm/hardware/gic.h>
 
 
-#define AVECR 0xfe700040
+#define AVECR IOMEM(0xfe700040)
 
 
 static struct r8a7779_pm_ch r8a7779_ch_cpu1 = {
 static struct r8a7779_pm_ch r8a7779_ch_cpu1 = {
 	.chan_offs = 0x40, /* PWRSR0 .. PWRER0 */
 	.chan_offs = 0x40, /* PWRSR0 .. PWRER0 */
@@ -140,7 +140,7 @@ void __init r8a7779_smp_prepare_cpus(void)
 	scu_enable(scu_base_addr());
 	scu_enable(scu_base_addr());
 
 
 	/* Map the reset vector (in headsmp.S) */
 	/* Map the reset vector (in headsmp.S) */
-	__raw_writel(__pa(shmobile_secondary_vector), __io(AVECR));
+	__raw_writel(__pa(shmobile_secondary_vector), AVECR);
 
 
 	/* enable cache coherency on CPU0 */
 	/* enable cache coherency on CPU0 */
 	modify_scu_cpu_psr(0, 3 << (cpu * 8));
 	modify_scu_cpu_psr(0, 3 << (cpu * 8));

+ 10 - 10
arch/arm/mach-shmobile/smp-sh73a0.c

@@ -28,11 +28,11 @@
 #include <asm/smp_twd.h>
 #include <asm/smp_twd.h>
 #include <asm/hardware/gic.h>
 #include <asm/hardware/gic.h>
 
 
-#define WUPCR		0xe6151010
-#define SRESCR		0xe6151018
-#define PSTR		0xe6151040
-#define SBAR            0xe6180020
-#define APARMBAREA      0xe6f10020
+#define WUPCR		IOMEM(0xe6151010)
+#define SRESCR		IOMEM(0xe6151018)
+#define PSTR		IOMEM(0xe6151040)
+#define SBAR		IOMEM(0xe6180020)
+#define APARMBAREA	IOMEM(0xe6f10020)
 
 
 static void __iomem *scu_base_addr(void)
 static void __iomem *scu_base_addr(void)
 {
 {
@@ -80,10 +80,10 @@ int __cpuinit sh73a0_boot_secondary(unsigned int cpu)
 	/* enable cache coherency */
 	/* enable cache coherency */
 	modify_scu_cpu_psr(0, 3 << (cpu * 8));
 	modify_scu_cpu_psr(0, 3 << (cpu * 8));
 
 
-	if (((__raw_readw(__io(PSTR)) >> (4 * cpu)) & 3) == 3)
-		__raw_writel(1 << cpu, __io(WUPCR));	/* wake up */
+	if (((__raw_readw(PSTR) >> (4 * cpu)) & 3) == 3)
+		__raw_writel(1 << cpu, WUPCR);	/* wake up */
 	else
 	else
-		__raw_writel(1 << cpu, __io(SRESCR));	/* reset */
+		__raw_writel(1 << cpu, SRESCR);	/* reset */
 
 
 	return 0;
 	return 0;
 }
 }
@@ -95,8 +95,8 @@ void __init sh73a0_smp_prepare_cpus(void)
 	scu_enable(scu_base_addr());
 	scu_enable(scu_base_addr());
 
 
 	/* Map the reset vector (in headsmp.S) */
 	/* Map the reset vector (in headsmp.S) */
-	__raw_writel(0, __io(APARMBAREA));      /* 4k */
-	__raw_writel(__pa(shmobile_secondary_vector), __io(SBAR));
+	__raw_writel(0, APARMBAREA);      /* 4k */
+	__raw_writel(__pa(shmobile_secondary_vector), SBAR);
 
 
 	/* enable cache coherency on CPU0 */
 	/* enable cache coherency on CPU0 */
 	modify_scu_cpu_psr(0, 3 << (cpu * 8));
 	modify_scu_cpu_psr(0, 3 << (cpu * 8));

+ 1 - 0
arch/arm/mach-spear3xx/clock.c

@@ -12,6 +12,7 @@
  */
  */
 
 
 #include <linux/init.h>
 #include <linux/init.h>
+#include <linux/io.h>
 #include <linux/kernel.h>
 #include <linux/kernel.h>
 #include <asm/mach-types.h>
 #include <asm/mach-types.h>
 #include <plat/clock.h>
 #include <plat/clock.h>

+ 1 - 0
arch/arm/mach-spear6xx/clock.c

@@ -12,6 +12,7 @@
  */
  */
 
 
 #include <linux/init.h>
 #include <linux/init.h>
+#include <linux/io.h>
 #include <linux/kernel.h>
 #include <linux/kernel.h>
 #include <plat/clock.h>
 #include <plat/clock.h>
 #include <mach/misc_regs.h>
 #include <mach/misc_regs.h>

+ 0 - 6
arch/arm/mach-tegra/include/mach/iomap.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_PHYS	0x40000000
 #define IO_IRAM_VIRT	IOMEM(0xFE400000)
 #define IO_IRAM_VIRT	IOMEM(0xFE400000)
 #define IO_IRAM_SIZE	SZ_256K
 #define IO_IRAM_SIZE	SZ_256K

+ 0 - 6
arch/arm/mach-u300/include/mach/u300-regs.h

@@ -18,12 +18,6 @@
  * the defines are used for setting up the I/O memory mapping.
  * 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 */
 /* NAND Flash CS0 */
 #define U300_NAND_CS0_PHYS_BASE		0x80000000
 #define U300_NAND_CS0_PHYS_BASE		0x80000000
 
 

+ 1 - 1
arch/arm/mach-ux500/include/mach/hardware.h

@@ -23,7 +23,7 @@
 	(((x) & 0x0fffffff) + (((x) >> 4) & 0x0f000000) + U8500_IO_VIRTUAL)
 	(((x) & 0x0fffffff) + (((x) >> 4) & 0x0f000000) + U8500_IO_VIRTUAL)
 
 
 /* typesafe io address */
 /* typesafe io address */
-#define __io_address(n)		__io(IO_ADDRESS(n))
+#define __io_address(n)		IOMEM(IO_ADDRESS(n))
 /* Used by some plat-nomadik code */
 /* Used by some plat-nomadik code */
 #define io_p2v(n)		__io_address(n)
 #define io_p2v(n)		__io_address(n)
 
 

+ 6 - 2
arch/arm/mm/nommu.c

@@ -86,13 +86,17 @@ void __iomem *__arm_ioremap(unsigned long phys_addr, size_t size,
 }
 }
 EXPORT_SYMBOL(__arm_ioremap);
 EXPORT_SYMBOL(__arm_ioremap);
 
 
+void __iomem * (*arch_ioremap_caller)(unsigned long, size_t, unsigned int, void *);
+
 void __iomem *__arm_ioremap_caller(unsigned long phys_addr, size_t size,
 void __iomem *__arm_ioremap_caller(unsigned long phys_addr, size_t size,
 				   unsigned int mtype, void *caller)
 				   unsigned int mtype, void *caller)
 {
 {
 	return __arm_ioremap(phys_addr, size, mtype);
 	return __arm_ioremap(phys_addr, size, mtype);
 }
 }
 
 
-void __iounmap(volatile void __iomem *addr)
+void (*arch_iounmap)(volatile void __iomem *);
+
+void __arm_iounmap(volatile void __iomem *addr)
 {
 {
 }
 }
-EXPORT_SYMBOL(__iounmap);
+EXPORT_SYMBOL(__arm_iounmap);

+ 0 - 6
arch/arm/plat-mxc/include/mach/hardware.h

@@ -22,12 +22,6 @@
 
 
 #include <asm/sizes.h>
 #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) \
 #define addr_in_module(addr, mod) \
 	((unsigned long)(addr) - mod ## _BASE_ADDR < mod ## _SIZE)
 	((unsigned long)(addr) - mod ## _BASE_ADDR < mod ## _SIZE)
 
 

+ 0 - 6
arch/arm/plat-omap/include/plat/hardware.h

@@ -43,12 +43,6 @@
 #endif
 #endif
 #include <plat/serial.h>
 #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
  * Common definitions for all OMAP processors

+ 0 - 1
arch/arm/plat-omap/include/plat/usb.h

@@ -112,7 +112,6 @@ extern int omap4430_phy_suspend(struct device *dev, int suspend);
  */
  */
 
 
 #define OMAP2_L4_IO_OFFSET	0xb2000000
 #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)
 #define OMAP2_L4_IO_ADDRESS(pa)	IOMEM((pa) + OMAP2_L4_IO_OFFSET)
 
 
 static inline u8 omap_readb(u32 pa)
 static inline u8 omap_readb(u32 pa)

+ 0 - 6
arch/arm/plat-spear/include/plat/hardware.h

@@ -14,10 +14,4 @@
 #ifndef __PLAT_HARDWARE_H
 #ifndef __PLAT_HARDWARE_H
 #define __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 */
 #endif /* __PLAT_HARDWARE_H */