From: Linus Torvalds Date: Sat, 26 May 2012 20:14:01 +0000 (-0700) Subject: Merge tag 'cleanup-initcall' of git://git.kernel.org/pub/scm/linux/kernel/git/arm... X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=f465d145d76803fe6332092775d891c8c509aa44;p=GitHub%2FLineageOS%2Fandroid_kernel_samsung_universal7580.git Merge tag 'cleanup-initcall' of git://git./linux/kernel/git/arm/arm-soc 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 --- f465d145d76803fe6332092775d891c8c509aa44 diff --cc arch/arm/mach-exynos/mach-smdk4x12.c index fe772d893cc,763967d71da..fb09c70e195 --- a/arch/arm/mach-exynos/mach-smdk4x12.c +++ b/arch/arm/mach-exynos/mach-smdk4x12.c @@@ -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 diff --cc arch/arm/mach-exynos/mach-universal_c210.c index 6b731b86327,2cd95aa8875..083b44de9c1 --- a/arch/arm/mach-exynos/mach-universal_c210.c +++ b/arch/arm/mach-exynos/mach-universal_c210.c @@@ -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, + .init_late = exynos_init_late, - .timer = &exynos4_timer, + .timer = &s5p_timer, .reserve = &universal_reserve, .restart = exynos4_restart, MACHINE_END diff --cc arch/arm/mach-omap1/common.h index 64ce3bbe22b,0b77e6d68f5..c2552b24f9f --- a/arch/arm/mach-omap1/common.h +++ b/arch/arm/mach-omap1/common.h @@@ -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 */ diff --cc arch/arm/mach-omap2/board-generic.c index 7302ba7ff1b,56ffcc9f2b2..20293465786 --- a/arch/arm/mach-omap2/board-generic.c +++ b/arch/arm/mach-omap2/board-generic.c @@@ -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, diff --cc arch/arm/mach-omap2/pm34xx.c index 8b43aefba0e,c769b888e2c..a34023d0ca7 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c @@@ -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"); diff --cc arch/arm/mach-shmobile/include/mach/common.h index ff5f12fd742,2a527c4de36..01e2bc014f1 --- a/arch/arm/mach-shmobile/include/mach/common.h +++ b/arch/arm/mach-shmobile/include/mach/common.h @@@ -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 */ diff --cc arch/arm/mach-ux500/include/mach/setup.h index 4e369f1645e,7b5d865ac59..8b7ed82a286 --- a/arch/arm/mach-ux500/include/mach/setup.h +++ b/arch/arm/mach-ux500/include/mach/setup.h @@@ -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;