Merge tag 'cleanup-initcall' of git://git.kernel.org/pub/scm/linux/kernel/git/arm...
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 26 May 2012 20:14:01 +0000 (13:14 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 26 May 2012 20:14:01 +0000 (13:14 -0700)
Pull sweeping late_initcall cleanup for arm-soc from Olof Johansson:
 "This is a patch series from Shawn Guo that moves from individual
  late_initcalls() to using a member in the machine structure to invoke
  a platform's late initcalls.

  This cleanup is a step in the move towards multiplatform kernels since
  it would reduce the need to check for compatible platforms in each and
  every initcall."

Fix up trivial conflicts in arch/arm/mach-{exynos/mach-universal_c210.c,
imx/mach-cpuimx51.c, omap2/board-generic.c} due to changes nearby (and,
in the case of cpuimx51.c the board support being deleted)

* tag 'cleanup-initcall' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
  ARM: ux500: use machine specific hook for late init
  ARM: tegra: use machine specific hook for late init
  ARM: shmobile: use machine specific hook for late init
  ARM: sa1100: use machine specific hook for late init
  ARM: s3c64xx: use machine specific hook for late init
  ARM: prima2: use machine specific hook for late init
  ARM: pnx4008: use machine specific hook for late init
  ARM: omap2: use machine specific hook for late init
  ARM: omap1: use machine specific hook for late init
  ARM: msm: use machine specific hook for late init
  ARM: imx: use machine specific hook for late init
  ARM: exynos: use machine specific hook for late init
  ARM: ep93xx: use machine specific hook for late init
  ARM: davinci: use machine specific hook for late init
  ARM: provide a late_initcall hook for platform initialization

69 files changed:
1  2 
arch/arm/kernel/setup.c
arch/arm/mach-davinci/board-da850-evm.c
arch/arm/mach-ep93xx/core.c
arch/arm/mach-exynos/common.c
arch/arm/mach-exynos/mach-armlex4210.c
arch/arm/mach-exynos/mach-exynos5-dt.c
arch/arm/mach-exynos/mach-nuri.c
arch/arm/mach-exynos/mach-origen.c
arch/arm/mach-exynos/mach-smdk4x12.c
arch/arm/mach-exynos/mach-smdkv310.c
arch/arm/mach-exynos/mach-universal_c210.c
arch/arm/mach-imx/imx51-dt.c
arch/arm/mach-imx/mach-cpuimx51sd.c
arch/arm/mach-imx/mach-mx51_babbage.c
arch/arm/mach-imx/mach-mx51_efikamx.c
arch/arm/mach-imx/mach-mx51_efikasb.c
arch/arm/mach-imx/mach-pcm037.c
arch/arm/mach-imx/mm-imx5.c
arch/arm/mach-msm/board-msm7x30.c
arch/arm/mach-msm/board-qsd8x50.c
arch/arm/mach-omap1/board-fsample.c
arch/arm/mach-omap1/board-h2.c
arch/arm/mach-omap1/board-h3.c
arch/arm/mach-omap1/board-palmz71.c
arch/arm/mach-omap1/board-perseus2.c
arch/arm/mach-omap1/common.h
arch/arm/mach-omap1/io.c
arch/arm/mach-omap2/board-3430sdp.c
arch/arm/mach-omap2/board-4430sdp.c
arch/arm/mach-omap2/board-am3517crane.c
arch/arm/mach-omap2/board-am3517evm.c
arch/arm/mach-omap2/board-cm-t35.c
arch/arm/mach-omap2/board-devkit8000.c
arch/arm/mach-omap2/board-generic.c
arch/arm/mach-omap2/board-igep0020.c
arch/arm/mach-omap2/board-omap3beagle.c
arch/arm/mach-omap2/board-omap3evm.c
arch/arm/mach-omap2/board-omap3logic.c
arch/arm/mach-omap2/board-omap3stalker.c
arch/arm/mach-omap2/board-omap4panda.c
arch/arm/mach-omap2/board-overo.c
arch/arm/mach-omap2/board-rx51.c
arch/arm/mach-omap2/common.h
arch/arm/mach-omap2/io.c
arch/arm/mach-omap2/mux.c
arch/arm/mach-omap2/pm24xx.c
arch/arm/mach-omap2/pm34xx.c
arch/arm/mach-s3c64xx/mach-anw6410.c
arch/arm/mach-s3c64xx/mach-crag6410.c
arch/arm/mach-s3c64xx/mach-mini6410.c
arch/arm/mach-s3c64xx/mach-real6410.c
arch/arm/mach-s3c64xx/mach-smdk6410.c
arch/arm/mach-shmobile/Makefile
arch/arm/mach-shmobile/board-ag5evm.c
arch/arm/mach-shmobile/board-ap4evb.c
arch/arm/mach-shmobile/board-bonito.c
arch/arm/mach-shmobile/board-mackerel.c
arch/arm/mach-shmobile/include/mach/common.h
arch/arm/mach-tegra/board-dt-tegra20.c
arch/arm/mach-tegra/board-dt-tegra30.c
arch/arm/mach-tegra/board-harmony.c
arch/arm/mach-tegra/board-paz00.c
arch/arm/mach-tegra/board-seaboard.c
arch/arm/mach-tegra/board-trimslice.c
arch/arm/mach-tegra/common.c
arch/arm/mach-ux500/board-mop500.c
arch/arm/mach-ux500/clock.c
arch/arm/mach-ux500/cpu.c
arch/arm/mach-ux500/include/mach/setup.h

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index fe772d893cc9653ded14e3cd6fdda8c8a0fe8867,763967d71daaf069cbce5fd08e5ec132e2f5856d..fb09c70e195af8a61e3399fb0db0926222905a66
@@@ -316,7 -303,7 +316,8 @@@ MACHINE_START(SMDK4412, "SMDK4412"
        .map_io         = smdk4x12_map_io,
        .handle_irq     = gic_handle_irq,
        .init_machine   = smdk4x12_machine_init,
+       .init_late      = exynos_init_late,
        .timer          = &exynos4_timer,
        .restart        = exynos4_restart,
 +      .reserve        = &smdk4x12_reserve,
  MACHINE_END
Simple merge
index 6b731b863275f5cc1d1362d3ccd68ade5db9b8b3,2cd95aa88751ca2c61756dc6b16146f6e346b770..083b44de9c10090dc887149c2ead7bb31858246a
@@@ -1157,7 -1113,8 +1157,8 @@@ MACHINE_START(UNIVERSAL_C210, "UNIVERSA
        .map_io         = universal_map_io,
        .handle_irq     = gic_handle_irq,
        .init_machine   = universal_machine_init,
 -      .timer          = &exynos4_timer,
+       .init_late      = exynos_init_late,
 +      .timer          = &s5p_timer,
        .reserve        = &universal_reserve,
        .restart        = exynos4_restart,
  MACHINE_END
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 64ce3bbe22b586ab96765a7fcb824a5af8505c26,0b77e6d68f5f51cdf03a3e2a9efd7344ca5cbdd3..c2552b24f9f295381b36132cc4d59b850ade8d3f
@@@ -53,31 -52,22 +53,41 @@@ static inline void omap16xx_map_io(void
  }
  #endif
  
+ #ifdef CONFIG_OMAP_SERIAL_WAKE
+ int omap_serial_wakeup_init(void);
+ #else
+ static inline int omap_serial_wakeup_init(void)
+ {
+       return 0;
+ }
+ #endif
  void omap1_init_early(void);
  void omap1_init_irq(void);
+ void omap1_init_late(void);
  void omap1_restart(char, const char *);
  
 +extern void __init omap_check_revision(void);
 +
 +extern void omap1_nand_cmd_ctl(struct mtd_info *mtd, int cmd,
 +                             unsigned int ctrl);
 +
  extern struct sys_timer omap1_timer;
 -extern bool omap_32k_timer_init(void);
 -extern void __init omap_init_consistent_dma_size(void);
 +#ifdef CONFIG_OMAP_32K_TIMER
 +extern int omap_32k_timer_init(void);
 +#else
 +static inline int __init omap_32k_timer_init(void)
 +{
 +      return -ENODEV;
 +}
 +#endif
 +
 +extern u32 omap_irq_flags;
 +
 +#ifdef CONFIG_ARCH_OMAP16XX
 +extern int ocpi_enable(void);
 +#else
 +static inline int ocpi_enable(void) { return 0; }
 +#endif
  
  #endif /* __ARCH_ARM_MACH_OMAP1_COMMON_H */
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 7302ba7ff1b9007f0952566f8588571dfdd53b91,56ffcc9f2b2bf0ccf6b8277853618e10bee1da57..20293465786701f8650e1377ea070c6eee536673
@@@ -124,7 -157,8 +124,8 @@@ DT_MACHINE_START(OMAP4_DT, "Generic OMA
        .init_early     = omap4430_init_early,
        .init_irq       = omap_init_irq,
        .handle_irq     = gic_handle_irq,
 -      .init_machine   = omap4_init,
 +      .init_machine   = omap_generic_init,
+       .init_late      = omap4430_init_late,
        .timer          = &omap4_timer,
        .dt_compat      = omap4_boards_compat,
        .restart        = omap_prcm_restart,
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 8b43aefba0eae19b85a574f7324ed672d6670677,c769b888e2c85edbfa5791fdb6c7f6ea938cfd80..a34023d0ca7c665627d96ba4109a8a0e17b4ec6e
@@@ -697,15 -699,12 +697,12 @@@ static void __init pm_errata_configure(
        }
  }
  
static int __init omap3_pm_init(void)
+ int __init omap3_pm_init(void)
  {
        struct power_state *pwrst, *tmp;
 -      struct clockdomain *neon_clkdm, *per_clkdm, *mpu_clkdm, *core_clkdm;
 +      struct clockdomain *neon_clkdm, *mpu_clkdm;
        int ret;
  
-       if (!cpu_is_omap34xx())
-               return -ENODEV;
        if (!omap3_has_io_chain_ctrl())
                pr_warning("PM: no software I/O chain control; some wakeups may be lost\n");
  
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index ff5f12fd742fb737c923eb2210cebcdafed5a537,2a527c4de36c721d1b07d9937b1ed777d9ddbe6f..01e2bc014f1501f41f2f2a9b18a7596bb686ac27
@@@ -83,6 -82,19 +83,20 @@@ extern int r8a7779_platform_cpu_kill(un
  extern void r8a7779_secondary_init(unsigned int cpu);
  extern int r8a7779_boot_secondary(unsigned int cpu);
  extern void r8a7779_smp_prepare_cpus(void);
 +extern void r8a7779_register_twd(void);
  
+ extern void shmobile_init_late(void);
+ #ifdef CONFIG_SUSPEND
+ int shmobile_suspend_init(void);
+ #else
+ static inline int shmobile_suspend_init(void) { return 0; }
+ #endif
+ #ifdef CONFIG_CPU_IDLE
+ int shmobile_cpuidle_init(void);
+ #else
+ static inline int shmobile_cpuidle_init(void) { return 0; }
+ #endif
  #endif /* __ARCH_MACH_COMMON_H */
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 4e369f1645ec9bbbfdc3ee3a28927a7f0e01ff2d,7b5d865ac591ea6b5c93edacc734358dcb320d81..8b7ed82a286665961f04d548a0ab1137027fc7d8
@@@ -20,7 -21,13 +20,8 @@@ extern void __init u8500_map_io(void)
  extern struct device * __init u8500_init_devices(void);
  
  extern void __init ux500_init_irq(void);
+ extern void __init ux500_init_late(void);
  
 -extern void __init u5500_sdi_init(struct device *parent);
 -
 -extern void __init db5500_dma_init(struct device *parent);
 -
  extern struct device *ux500_soc_device_init(const char *soc_id);
  
  struct amba_device;