Merge tag 'cleanup2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Linus Torvalds [Fri, 30 Mar 2012 01:02:10 +0000 (18:02 -0700)]
Pull "ARM: cleanups of io includes" from Olof Johansson:
 "Rob Herring has done a sweeping change cleaning up all of the
  mach/io.h includes, moving some of the oft-repeated macros to a common
  location and removing a bunch of boiler plate.  This is another step
  closer to a common zImage for multiple platforms."

Fix up various fairly trivial conflicts (<mach/io.h> removal vs changes
around it, tegra localtimer.o is *still* gone, yadda-yadda).

* tag 'cleanup2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (29 commits)
  ARM: tegra: Include assembler.h in sleep.S to fix build break
  ARM: pxa: use common IOMEM definition
  ARM: dma-mapping: convert ARCH_HAS_DMA_SET_COHERENT_MASK to kconfig symbol
  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
  ARM: kill off __mem_pci
  ARM: remove bunch of now unused mach/io.h files
  ARM: make mach/io.h include optional
  ARM: clps711x: remove unneeded include of mach/io.h
  ARM: dove: add explicit include of dove.h to addr-map.c
  ARM: at91: add explicit include of hardware.h to uncompressor
  ARM: ep93xx: clean-up mach/io.h
  ARM: tegra: clean-up mach/io.h
  ARM: orion5x: clean-up mach/io.h
  ARM: davinci: remove unneeded mach/io.h include
  [media] davinci: remove includes of mach/io.h
  ARM: OMAP: Remove remaining includes for mach/io.h
  ARM: msm: clean-up mach/io.h
  ...

28 files changed:
1  2 
arch/arm/Kconfig
arch/arm/include/asm/assembler.h
arch/arm/include/asm/io.h
arch/arm/kernel/debug.S
arch/arm/kernel/entry-armv.S
arch/arm/mach-davinci/include/mach/hardware.h
arch/arm/mach-ebsa110/core.c
arch/arm/mach-imx/mm-imx3.c
arch/arm/mach-ixp4xx/goramo_mlr.c
arch/arm/mach-orion5x/pci.c
arch/arm/mach-pxa/mfp-pxa2xx.c
arch/arm/mach-pxa/sharpsl_pm.c
arch/arm/mach-s3c24xx/include/mach/io.h
arch/arm/mach-shmobile/board-ag5evm.c
arch/arm/mach-shmobile/board-bonito.c
arch/arm/mach-shmobile/board-kota2.c
arch/arm/mach-shmobile/intc-sh73a0.c
arch/arm/mach-shmobile/smp-r8a7779.c
arch/arm/mach-shmobile/smp-sh73a0.c
arch/arm/mach-spear6xx/clock.c
arch/arm/mach-tegra/include/mach/debug-macro.S
arch/arm/mach-tegra/include/mach/iomap.h
arch/arm/mach-ux500/include/mach/hardware.h
arch/arm/mm/ioremap.c
drivers/rtc/rtc-sa1100.c
drivers/watchdog/sa1100_wdt.c
sound/arm/pxa2xx-ac97-lib.c
sound/soc/pxa/pxa2xx-ac97.c

@@@ -267,8 -278,8 +277,9 @@@ config ARCH_INTEGRATO
        select GENERIC_CLOCKEVENTS
        select PLAT_VERSATILE
        select PLAT_VERSATILE_FPGA_IRQ
+       select NEED_MACH_IO_H
        select NEED_MACH_MEMORY_H
 +      select SPARSE_IRQ
        help
          Support for ARM's Integrator platform.
  
@@@ -538,7 -555,9 +557,8 @@@ config ARCH_IXP4X
        select CPU_XSCALE
        select GENERIC_GPIO
        select GENERIC_CLOCKEVENTS
 -      select HAVE_SCHED_CLOCK
        select MIGHT_HAVE_PCI
+       select NEED_MACH_IO_H
        select DMABOUNCE if PCI
        help
          Support for Intel's IXP4XX (XScale) family of processors.
@@@ -648,8 -671,10 +671,9 @@@ config ARCH_TEGR
        select GENERIC_CLOCKEVENTS
        select GENERIC_GPIO
        select HAVE_CLK
 -      select HAVE_SCHED_CLOCK
        select HAVE_SMP
        select MIGHT_HAVE_CACHE_L2X0
+       select NEED_MACH_IO_H if PCI
        select ARCH_HAS_CPUFREQ
        help
          This enables support for NVIDIA Tegra based systems (Tegra APX,
@@@ -773,13 -802,15 +798,14 @@@ config ARCH_S3C24X
        select CLKDEV_LOOKUP
        select ARCH_USES_GETTIMEOFFSET
        select HAVE_S3C2410_I2C if I2C
 +      select HAVE_S3C_RTC if RTC_CLASS
 +      select HAVE_S3C2410_WATCHDOG if WATCHDOG
+       select NEED_MACH_IO_H
        help
 -        Samsung S3C2410X CPU based systems, such as the Simtec Electronics
 -        BAST (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or
 -        the Samsung SMDK2410 development board (and derivatives).
 -
 -        Note, the S3C2416 and the S3C2450 are so close that they even share
 -        the same SoC ID code. This means that there is no separate machine
 -        directory (no arch/arm/mach-s3c2450) as the S3C2416 was first.
 +        Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443
 +        and S3C2450 SoCs based systems, such as the Simtec Electronics BAST
 +        (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or the
 +        Samsung SMDK2410 development board (and derivatives).
  
  config ARCH_S3C64XX
        bool "Samsung S3C64XX"
Simple merge
@@@ -96,9 -102,10 +101,11 @@@ static inline void __iomem *__typesafe_
        return (void __iomem *)addr;
  }
  
+ #define IOMEM(x)      ((void __force __iomem *)(x))
  /* IO barriers */
  #ifdef CONFIG_ARM_DMA_MEM_BUFFERABLE
 +#include <asm/barrier.h>
  #define __iormb()             rmb()
  #define __iowmb()             wmb()
  #else
Simple merge
Simple merge
Simple merge
@@@ -75,10 -73,10 +75,10 @@@ static void __iomem *imx3_ioremap_calle
                        mtype = MT_DEVICE_NONSHARED;
        }
  
-       return __arm_ioremap(phys_addr, size, mtype);
+       return __arm_ioremap_caller(phys_addr, size, mtype, caller);
  }
  
 -void imx3_init_l2x0(void)
 +void __init imx3_init_l2x0(void)
  {
        void __iomem *l2x0_base;
        void __iomem *clkctl_base;
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -78,10 -80,10 +78,10 @@@ int __cpuinit sh73a0_boot_secondary(uns
        /* enable cache coherency */
        modify_scu_cpu_psr(0, 3 << (cpu * 8));
  
-       if (((__raw_readl(__io(PSTR)) >> (4 * cpu)) & 3) == 3)
-               __raw_writel(1 << cpu, __io(WUPCR));    /* wake up */
 -      if (((__raw_readw(PSTR) >> (4 * cpu)) & 3) == 3)
++      if (((__raw_readl(PSTR) >> (4 * cpu)) & 3) == 3)
+               __raw_writel(1 << cpu, WUPCR);  /* wake up */
        else
-               __raw_writel(1 << cpu, __io(SRESCR));   /* reset */
+               __raw_writel(1 << cpu, SRESCR); /* reset */
  
        return 0;
  }
Simple merge
   *
   */
  
 +#include <linux/serial_reg.h>
 +
- #include <mach/io.h>
  #include <mach/iomap.h>
 +#include <mach/irammap.h>
 +
 +              .macro  addruart, rp, rv, tmp
 +              adr     \rp, 99f                @ actual addr of 99f
 +              ldr     \rv, [\rp]              @ linked addr is stored there
 +              sub     \rv, \rv, \rp           @ offset between the two
 +              ldr     \rp, [\rp, #4]          @ linked tegra_uart_config
 +              sub     \tmp, \rp, \rv          @ actual tegra_uart_config
 +              ldr     \rp, [\tmp]             @ Load tegra_uart_config
 +              cmp     \rp, #1                 @ needs intitialization?
 +              bne     100f                    @ no; go load the addresses
 +              mov     \rv, #0                 @ yes; record init is done
 +              str     \rv, [\tmp]
 +              mov     \rp, #TEGRA_IRAM_BASE   @ See if cookie is in IRAM
 +              ldr     \rv, [\rp, #TEGRA_IRAM_DEBUG_UART_OFFSET]
 +              movw    \rp, #TEGRA_IRAM_DEBUG_UART_COOKIE & 0xffff
 +              movt    \rp, #TEGRA_IRAM_DEBUG_UART_COOKIE >> 16
 +              cmp     \rv, \rp                @ Cookie present?
 +              bne     100f                    @ No, use default UART
 +              mov     \rp, #TEGRA_IRAM_BASE   @ Load UART address from IRAM
 +              ldr     \rv, [\rp, #TEGRA_IRAM_DEBUG_UART_OFFSET + 4]
 +              str     \rv, [\tmp, #4]         @ Store in tegra_uart_phys
 +              sub     \rv, \rv, #IO_APB_PHYS  @ Calculate virt address
 +              add     \rv, \rv, #IO_APB_VIRT
 +              str     \rv, [\tmp, #8]         @ Store in tegra_uart_virt
 +              b       100f
 +
 +              .align
 +99:           .word   .
 +              .word   tegra_uart_config
 +              .ltorg
 +
 +100:          ldr     \rp, [\tmp, #4]         @ Load tegra_uart_phys
 +              ldr     \rv, [\tmp, #8]         @ Load tegra_uart_virt
 +              .endm
 +
 +#define UART_SHIFT 2
 +
 +/*
 + * Code below is swiped from <asm/hardware/debug-8250.S>, but add an extra
 + * check to make sure that we aren't in the CONFIG_TEGRA_DEBUG_UART_NONE case.
 + * We use the fact that all 5 valid UART addresses all have something in the
 + * 2nd-to-lowest byte.
 + */
  
 -      .macro  addruart, rp, rv, tmp
 -        ldr     \rp, =IO_APB_PHYS       @ physical
 -        ldr     \rv, =IO_APB_VIRT        @ virtual
 -      orr     \rp, \rp, #(TEGRA_DEBUG_UART_BASE & 0xFF)
 -      orr     \rp, \rp, #(TEGRA_DEBUG_UART_BASE & 0xFF00)
 -      orr     \rv, \rv, #(TEGRA_DEBUG_UART_BASE & 0xFF)
 -      orr     \rv, \rv, #(TEGRA_DEBUG_UART_BASE & 0xFF00)
 -      .endm
 +              .macro  senduart, rd, rx
 +              tst     \rx, #0x0000ff00
 +              strneb  \rd, [\rx, #UART_TX << UART_SHIFT]
 +1001:
 +              .endm
  
 -#define UART_SHIFT    2
 -#include <asm/hardware/debug-8250.S>
 +              .macro  busyuart, rd, rx
 +              tst     \rx, #0x0000ff00
 +              beq     1002f
 +1001:         ldrb    \rd, [\rx, #UART_LSR << UART_SHIFT]
 +              and     \rd, \rd, #UART_LSR_TEMT | UART_LSR_THRE
 +              teq     \rd, #UART_LSR_TEMT | UART_LSR_THRE
 +              bne     1001b
 +1002:
 +              .endm
  
 +              .macro  waituart, rd, rx
 +#ifdef FLOW_CONTROL
 +              tst     \rx, #0x0000ff00
 +              beq     1002f
 +1001:         ldrb    \rd, [\rx, #UART_MSR << UART_SHIFT]
 +              tst     \rd, #UART_MSR_CTS
 +              beq     1001b
 +1002:
 +#endif
 +              .endm
Simple merge
  #include <linux/init.h>
  #include <linux/fs.h>
  #include <linux/interrupt.h>
 +#include <linux/slab.h>
  #include <linux/string.h>
 +#include <linux/of.h>
  #include <linux/pm.h>
  #include <linux/bitops.h>
+ #include <linux/io.h>
  
  #include <mach/hardware.h>
 -#include <asm/irq.h>
 +#include <mach/irqs.h>
  
 -#ifdef CONFIG_ARCH_PXA
 +#if defined(CONFIG_ARCH_PXA) || defined(CONFIG_ARCH_MMP)
  #include <mach/regs-rtc.h>
  #endif
  
Simple merge
Simple merge
Simple merge