arch/arm/mach-* late_initcall cleanup
Subsystems (14)
cover arch/arm/mach-* late_initcall cleanup
This series tries to clean up those late_initcall in arch/arm/mach-*, which will be a blocker for single kernel build for multiple platforms. Even on single platform, for example imx, where we already have single kernel image for imx3, imx5 and imx6 families, late_initcall does not scale. We have to detect soc type in the late_initcall to do soc sepcific late initialization.
Changes since v1:
* Drop the changes on some files that to be removed per platform maintainers' request.
* Drop at91 patch
* Add one missing ep93xx board file (Thanks to Hartley)
* Add back one lost bit for imx (Thanks to Sascha)
Shawn Guo (15):
ARM: provide a late_initcall hook for platform initialization
ARM: davinci: use machine specific hook for late init
ARM: ep93xx: use machine specific hook for late init
ARM: exynos: use machine specific hook for late init
ARM: imx: use machine specific hook for late init
ARM: msm: use machine specific hook for late init
ARM: omap1: use machine specific hook for late init
ARM: omap2: use machine specific hook for late init
ARM: pnx4008: use machine specific hook for late init
ARM: prima2: use machine specific hook for late init
ARM: s3c64xx: use machine specific hook for late init
ARM: sa1100: use machine specific hook for late init
ARM: shmobile: use machine specific hook for late init
ARM: tegra: use machine specific hook for late init
ARM: ux500: use machine specific hook for late init
arch/arm/include/asm/mach/arch.h | 1 + arch/arm/kernel/setup.c | 8 +++ arch/arm/mach-davinci/board-da830-evm.c | 1 + arch/arm/mach-davinci/board-da850-evm.c | 1 + arch/arm/mach-davinci/board-dm355-evm.c | 1 + arch/arm/mach-davinci/board-dm355-leopard.c | 1 + arch/arm/mach-davinci/board-dm365-evm.c | 1 + arch/arm/mach-davinci/board-dm644x-evm.c | 1 + arch/arm/mach-davinci/board-dm646x-evm.c | 1 + arch/arm/mach-davinci/board-mityomapl138.c | 1 + arch/arm/mach-davinci/board-neuros-osd2.c | 1 + arch/arm/mach-davinci/board-omapl138-hawk.c | 1 + arch/arm/mach-davinci/board-sffsdr.c | 1 + arch/arm/mach-davinci/board-tnetv107x-evm.c | 1 + arch/arm/mach-davinci/clock.c | 3 +- arch/arm/mach-davinci/common.c | 7 +++ arch/arm/mach-davinci/cpufreq.c | 3 +- arch/arm/mach-davinci/include/mach/common.h | 19 ++++++++ arch/arm/mach-davinci/pm.c | 3 +- arch/arm/mach-ep93xx/adssphere.c | 1 + arch/arm/mach-ep93xx/core.c | 5 ++ arch/arm/mach-ep93xx/crunch.c | 4 +- arch/arm/mach-ep93xx/edb93xx.c | 8 +++ arch/arm/mach-ep93xx/gesbc9312.c | 1 + arch/arm/mach-ep93xx/include/mach/platform.h | 7 +++ arch/arm/mach-ep93xx/micro9.c | 4 ++ arch/arm/mach-ep93xx/simone.c | 1 + arch/arm/mach-ep93xx/snappercl15.c | 1 + arch/arm/mach-ep93xx/ts72xx.c | 1 + arch/arm/mach-ep93xx/vision_ep9307.c | 1 + arch/arm/mach-exynos/common.c | 5 ++ arch/arm/mach-exynos/common.h | 7 +++ arch/arm/mach-exynos/mach-armlex4210.c | 1 + arch/arm/mach-exynos/mach-exynos4-dt.c | 1 + arch/arm/mach-exynos/mach-exynos5-dt.c | 1 + arch/arm/mach-exynos/mach-nuri.c | 1 + arch/arm/mach-exynos/mach-origen.c | 1 + arch/arm/mach-exynos/mach-smdk4x12.c | 1 + arch/arm/mach-exynos/mach-smdkv310.c | 1 + arch/arm/mach-exynos/mach-universal_c210.c | 1 + arch/arm/mach-exynos/pm_domains.c | 3 +- arch/arm/mach-imx/cpu-imx5.c | 6 +-- arch/arm/mach-imx/imx51-dt.c | 1 + arch/arm/mach-imx/mach-cpuimx51.c | 1 + arch/arm/mach-imx/mach-cpuimx51sd.c | 1 + arch/arm/mach-imx/mach-mx51_3ds.c | 1 + arch/arm/mach-imx/mach-mx51_babbage.c | 1 + arch/arm/mach-imx/mach-mx51_efikamx.c | 42 +++++++++-------- arch/arm/mach-imx/mach-mx51_efikasb.c | 28 +++++++----- arch/arm/mach-imx/mach-pcm037.c | 6 +++ arch/arm/mach-imx/mach-pcm037_eet.c | 5 +- arch/arm/mach-imx/mm-imx5.c | 5 ++ arch/arm/mach-imx/pcm037.h | 6 +++ arch/arm/mach-msm/board-halibut.c | 6 +++ arch/arm/mach-msm/board-mahimahi.c | 6 +++ arch/arm/mach-msm/board-msm7x27.c | 9 ++++ arch/arm/mach-msm/board-msm7x30.c | 8 +++ arch/arm/mach-msm/board-msm8960.c | 7 +++ arch/arm/mach-msm/board-msm8x60.c | 10 ++++ arch/arm/mach-msm/board-qsd8x50.c | 7 +++ arch/arm/mach-msm/board-sapphire.c | 6 +++ arch/arm/mach-msm/board-trout.c | 6 +++ arch/arm/mach-msm/include/mach/board.h | 6 +++ arch/arm/mach-msm/smd_debug.c | 3 +- arch/arm/mach-omap1/board-ams-delta.c | 8 +++- arch/arm/mach-omap1/board-fsample.c | 1 + arch/arm/mach-omap1/board-generic.c | 1 + arch/arm/mach-omap1/board-h2.c | 1 + arch/arm/mach-omap1/board-h3.c | 1 + arch/arm/mach-omap1/board-htcherald.c | 1 + arch/arm/mach-omap1/board-innovator.c | 1 + arch/arm/mach-omap1/board-nokia770.c | 1 + arch/arm/mach-omap1/board-osk.c | 1 + arch/arm/mach-omap1/board-palmte.c | 1 + arch/arm/mach-omap1/board-palmtt.c | 1 + arch/arm/mach-omap1/board-palmz71.c | 1 + arch/arm/mach-omap1/board-perseus2.c | 1 + arch/arm/mach-omap1/board-sx1.c | 1 + arch/arm/mach-omap1/board-voiceblue.c | 1 + arch/arm/mach-omap1/common.h | 10 ++++ arch/arm/mach-omap1/io.c | 5 ++ arch/arm/mach-omap1/serial.c | 3 +- arch/arm/mach-omap2/board-2430sdp.c | 1 + arch/arm/mach-omap2/board-3430sdp.c | 1 + arch/arm/mach-omap2/board-3630sdp.c | 1 + arch/arm/mach-omap2/board-4430sdp.c | 1 + arch/arm/mach-omap2/board-am3517crane.c | 1 + arch/arm/mach-omap2/board-am3517evm.c | 1 + arch/arm/mach-omap2/board-apollon.c | 1 + arch/arm/mach-omap2/board-cm-t35.c | 2 + arch/arm/mach-omap2/board-cm-t3517.c | 1 + arch/arm/mach-omap2/board-devkit8000.c | 1 + arch/arm/mach-omap2/board-generic.c | 1 + arch/arm/mach-omap2/board-h4.c | 1 + arch/arm/mach-omap2/board-igep0020.c | 2 + arch/arm/mach-omap2/board-ldp.c | 1 + arch/arm/mach-omap2/board-n8x0.c | 3 + arch/arm/mach-omap2/board-omap3beagle.c | 1 + arch/arm/mach-omap2/board-omap3evm.c | 1 + arch/arm/mach-omap2/board-omap3logic.c | 2 + arch/arm/mach-omap2/board-omap3pandora.c | 1 + arch/arm/mach-omap2/board-omap3stalker.c | 1 + arch/arm/mach-omap2/board-omap3touchbook.c | 1 + arch/arm/mach-omap2/board-omap4panda.c | 1 + arch/arm/mach-omap2/board-overo.c | 1 + arch/arm/mach-omap2/board-rm680.c | 2 + arch/arm/mach-omap2/board-rx51.c | 1 + arch/arm/mach-omap2/board-ti8168evm.c | 2 + arch/arm/mach-omap2/board-zoom.c | 2 + arch/arm/mach-omap2/common.h | 47 +++++++++++++++++++ arch/arm/mach-omap2/io.c | 63 ++++++++++++++++++++++++++ arch/arm/mach-omap2/mux.c | 3 +- arch/arm/mach-omap2/pm.c | 3 +- arch/arm/mach-omap2/pm24xx.c | 17 ++----- arch/arm/mach-omap2/pm34xx.c | 7 +--- arch/arm/mach-omap2/pm44xx.c | 6 +-- arch/arm/mach-pnx4008/core.c | 12 +++++ arch/arm/mach-pnx4008/pm.c | 4 +- arch/arm/mach-prima2/common.h | 6 +++ arch/arm/mach-prima2/pm.c | 3 +- arch/arm/mach-prima2/prima2.c | 6 +++ arch/arm/mach-s3c64xx/common.c | 5 ++ arch/arm/mach-s3c64xx/common.h | 7 +++ arch/arm/mach-s3c64xx/mach-anw6410.c | 1 + arch/arm/mach-s3c64xx/mach-crag6410.c | 1 + arch/arm/mach-s3c64xx/mach-hmt.c | 1 + arch/arm/mach-s3c64xx/mach-mini6410.c | 1 + arch/arm/mach-s3c64xx/mach-ncp.c | 1 + arch/arm/mach-s3c64xx/mach-real6410.c | 1 + arch/arm/mach-s3c64xx/mach-smartq5.c | 1 + arch/arm/mach-s3c64xx/mach-smartq7.c | 1 + arch/arm/mach-s3c64xx/mach-smdk6400.c | 1 + arch/arm/mach-s3c64xx/mach-smdk6410.c | 1 + arch/arm/mach-s3c64xx/pm.c | 3 +- arch/arm/mach-sa1100/assabet.c | 1 + arch/arm/mach-sa1100/badge4.c | 1 + arch/arm/mach-sa1100/cerf.c | 1 + arch/arm/mach-sa1100/collie.c | 1 + arch/arm/mach-sa1100/generic.c | 4 ++ arch/arm/mach-sa1100/generic.h | 7 +++ arch/arm/mach-sa1100/h3100.c | 1 + arch/arm/mach-sa1100/h3600.c | 1 + arch/arm/mach-sa1100/hackkit.c | 1 + arch/arm/mach-sa1100/jornada720.c | 1 + arch/arm/mach-sa1100/lart.c | 1 + arch/arm/mach-sa1100/nanoengine.c | 1 + arch/arm/mach-sa1100/pleb.c | 1 + arch/arm/mach-sa1100/pm.c | 4 +- arch/arm/mach-sa1100/shannon.c | 1 + arch/arm/mach-sa1100/simpad.c | 1 + arch/arm/mach-shmobile/Makefile | 2 +- arch/arm/mach-shmobile/board-ag5evm.c | 1 + arch/arm/mach-shmobile/board-ap4evb.c | 1 + arch/arm/mach-shmobile/board-bonito.c | 1 + arch/arm/mach-shmobile/board-g3evm.c | 1 + arch/arm/mach-shmobile/board-g4evm.c | 1 + arch/arm/mach-shmobile/board-kota2.c | 1 + arch/arm/mach-shmobile/board-mackerel.c | 1 + arch/arm/mach-shmobile/board-marzen.c | 1 + arch/arm/mach-shmobile/common.c | 24 ++++++++++ arch/arm/mach-shmobile/cpuidle.c | 3 +- arch/arm/mach-shmobile/include/mach/common.h | 14 ++++++ arch/arm/mach-shmobile/suspend.c | 3 +- arch/arm/mach-tegra/board-dt-tegra20.c | 1 + arch/arm/mach-tegra/board-dt-tegra30.c | 1 + arch/arm/mach-tegra/board-harmony.c | 1 + arch/arm/mach-tegra/board-paz00.c | 1 + arch/arm/mach-tegra/board-seaboard.c | 3 + arch/arm/mach-tegra/board-trimslice.c | 1 + arch/arm/mach-tegra/board.h | 14 ++++++ arch/arm/mach-tegra/clock.c | 3 +- arch/arm/mach-tegra/common.c | 6 +++ arch/arm/mach-tegra/powergate.c | 4 +- arch/arm/mach-ux500/board-mop500.c | 4 ++ arch/arm/mach-ux500/clock.c | 6 +-- arch/arm/mach-ux500/clock.h | 12 +++++ arch/arm/mach-ux500/cpu.c | 6 +++ arch/arm/mach-ux500/include/mach/setup.h | 1 + arch/arm/plat-mxc/include/mach/common.h | 7 +++ 179 files changed, 614 insertions(+), 106 deletions(-) create mode 100644 arch/arm/mach-shmobile/common.c
Signature · 1 line
1.7.5.4
PATCH 1/15 ARM: provide a late_initcall hook for platform initialization
This allows platforms to set up things that need to be done at late_initcall time.
--- arch/arm/include/asm/mach/arch.h | 1 + arch/arm/kernel/setup.c | 8 ++++++++ 2 files changed, 9 insertions(+), 0 deletions(-)
arch/arm/include/asm/mach/arch.h +1 -0
@@ -43,6 +43,7 @@ struct machine_desc {void (*init_irq)(void );struct sys_timer *timer;/* system tick timer */ void (*init_machine)(void ); +void (*init_late)(void );#ifdef CONFIG_MULTI_IRQ_HANDLER void (*handle_irq)(struct pt_regs *);#endif
arch/arm/kernel/setup.c +8 -0
@@ -800,6 +800,14 @@ static int __init customize_machine(void) }arch_initcall (customize_machine); +static int __init init_machine_late (void ) +{ +if (machine_desc->init_late) + machine_desc->init_late (); +return 0 ; +} +late_initcall (init_machine_late); +#ifdef CONFIG_KEXEC static inline unsigned long long get_total_mem (void ) {
Signature · 1 line
1.7.5.4
PATCH 1/15 ARM: provide a late_initcall hook for platform initialization
Quoted 4 lines · Shawn Guo
This allows platforms to set up things that need to be done at
late_initcalltime.Cc Russell King <[email protected]>
Hi Russell,
I think it's a bit easier to have this patch go through arm-soc tree together with other patches in the series. May I have you ack on this patch to do that?
Regards,
Shawn
Quoted 41 lines
Signed-off-by Shawn Guo <[email protected]>Tested-by Robert Lee <[email protected]>--- arch/arm/include/asm/mach/arch.h | 1 + arch/arm/kernel/setup.c | 8 ++++++++ 2 files changed, 9 insertions(+), 0 deletions(-)arch/arm/include/asm/mach/arch.h +1
-0@@ -43,6 +43,7 @@ struct machine_desc {void (*init_irq)(void );struct sys_timer *timer;/* system tick timer */ void (*init_machine)(void ); +void (*init_late)(void );#ifdef CONFIG_MULTI_IRQ_HANDLER void (*handle_irq)(struct pt_regs *);#endif arch/arm/kernel/setup.c +8
-0@@ -800,6 +800,14 @@ static int __init customize_machine(void) }arch_initcall (customize_machine); +static int __init init_machine_late (void ) +{ +if (machine_desc->init_late) + machine_desc->init_late (); +return 0 ; +} +late_initcall (init_machine_late); +#ifdef CONFIG_KEXEC static inline unsigned long long get_total_mem (void ) {Signature · 1 line
1.7.5.4
PATCH 1/15 ARM: provide a late_initcall hook for platform initialization
Quoted 4 lines · Shawn Guo
Quoted 3 lines · Shawn Guo
This allows platforms to set up things that need to be done at
late_initcalltime.
Quoted 8 lines
Quoted 1 line
Cc Russell King <[email protected]>Hi Russell,
I think it's a bit easier to have this patch go through arm-soc tree together with other patches in the series. May I have you ack on this patch to do that?
Or you prefer to have this patch go to your patch tracker? Please let me know your preference.
Signature · 2 lines
Regards, Shawn
PATCH 1/15 ARM: provide a late_initcall hook for platform initialization
In reply to Shawn GuoQuoted 11 lines · Shawn Guo
Quoted 4 lines · Shawn Guo
This allows platforms to set up things that need to be done at
late_initcalltime.Cc Russell King <[email protected]>Hi Russell,
I think it's a bit easier to have this patch go through arm-soc tree together with other patches in the series. May I have you ack on this patch to do that?
PATCH 1/15 ARM: provide a late_initcall hook for platform initialization
In reply to Shawn GuoQuoted 33 lines · Shawn Guo
This allows platforms to set up things that need to be done at
late_initcalltime.Cc Russell King <[email protected]>Signed-off-by Shawn Guo <[email protected]>Tested-by Robert Lee <[email protected]>--- arch/arm/include/asm/mach/arch.h | 1 + arch/arm/kernel/setup.c | 8 ++++++++ 2 files changed, 9 insertions(+), 0 deletions(-)arch/arm/include/asm/mach/arch.h +1
-0@@ -43,6 +43,7 @@ struct machine_desc {void (*init_irq)(void );struct sys_timer *timer;/* system tick timer */ void (*init_machine)(void ); +void (*init_late)(void );#ifdef CONFIG_MULTI_IRQ_HANDLER void (*handle_irq)(struct pt_regs *);#endif arch/arm/kernel/setup.c +1
-0@@ -800,6 +800,14 @@ static int __init customize_machine(void) }arch_initcall (customize_machine); +static int __init init_machine_late (void )
arch/arm/kernel/setup.c static int __init customize_machine(void) · line 813
Quoted 10 lines
arch/arm/kernel/setup.c +7
-0+{ +if (machine_desc->init_late) + machine_desc->init_late (); +return 0 ; +} +late_initcall (init_machine_late); +#ifdef CONFIG_KEXEC static inline unsigned long long get_total_mem (void ) {
PATCH 2/15 ARM: davinci: use machine specific hook for late init
In reply to Shawn Guo--- arch/arm/mach-davinci/board-da830-evm.c | 1 + arch/arm/mach-davinci/board-da850-evm.c | 1 + arch/arm/mach-davinci/board-dm355-evm.c | 1 + arch/arm/mach-davinci/board-dm355-leopard.c | 1 + arch/arm/mach-davinci/board-dm365-evm.c | 1 + arch/arm/mach-davinci/board-dm644x-evm.c | 1 + arch/arm/mach-davinci/board-dm646x-evm.c | 1 + arch/arm/mach-davinci/board-mityomapl138.c | 1 + arch/arm/mach-davinci/board-neuros-osd2.c | 1 + arch/arm/mach-davinci/board-omapl138-hawk.c | 1 + arch/arm/mach-davinci/board-sffsdr.c | 1 + arch/arm/mach-davinci/board-tnetv107x-evm.c | 1 + arch/arm/mach-davinci/clock.c | 3 +-- arch/arm/mach-davinci/common.c | 7 +++++++ arch/arm/mach-davinci/cpufreq.c | 3 +-- arch/arm/mach-davinci/include/mach/common.h | 19 +++++++++++++++++++ arch/arm/mach-davinci/pm.c | 3 +-- 17 files changed, 41 insertions(+), 6 deletions(-)
arch/arm/mach-davinci/board-da830-evm.c +1 -0
@@ -681,6 +681,7 @@ MACHINE_START(DAVINCI_DA830_EVM, "DaVinci DA830/OMAP-L137/AM17x EVM") .init_irq = cp_intc_init, .timer = &davinci_timer, .init_machine = da830_evm_init, + .init_late = davinci_init_late, .dma_zone_size = SZ_128M, .restart = da8xx_restart,MACHINE_END
arch/arm/mach-davinci/board-da850-evm.c +1 -0
@@ -1411,6 +1411,7 @@ MACHINE_START(DAVINCI_DA850_EVM, "DaVinci DA850/OMAP-L138/AM18x EVM") .init_irq = cp_intc_init, .timer = &davinci_timer, .init_machine = da850_evm_init, + .init_late = davinci_init_late, .dma_zone_size = SZ_128M, .restart = da8xx_restart,MACHINE_END
arch/arm/mach-davinci/board-dm355-evm.c +1 -0
@@ -357,6 +357,7 @@ MACHINE_START(DAVINCI_DM355_EVM, "DaVinci DM355 EVM") .init_irq = davinci_irq_init, .timer = &davinci_timer, .init_machine = dm355_evm_init, + .init_late = davinci_init_late, .dma_zone_size = SZ_128M, .restart = davinci_restart,MACHINE_END
arch/arm/mach-davinci/board-dm355-leopard.c +1 -0
@@ -276,6 +276,7 @@ MACHINE_START(DM355_LEOPARD, "DaVinci DM355 leopard") .init_irq = davinci_irq_init, .timer = &davinci_timer, .init_machine = dm355_leopard_init, + .init_late = davinci_init_late, .dma_zone_size = SZ_128M, .restart = davinci_restart,MACHINE_END
arch/arm/mach-davinci/board-dm365-evm.c +1 -0
@@ -618,6 +618,7 @@ MACHINE_START(DAVINCI_DM365_EVM, "DaVinci DM365 EVM") .init_irq = davinci_irq_init, .timer = &davinci_timer, .init_machine = dm365_evm_init, + .init_late = davinci_init_late, .dma_zone_size = SZ_128M, .restart = davinci_restart,MACHINE_END
arch/arm/mach-davinci/board-dm644x-evm.c +1 -0
@@ -825,6 +825,7 @@ MACHINE_START(DAVINCI_EVM, "DaVinci DM644x EVM") .init_irq = davinci_irq_init, .timer = &davinci_timer, .init_machine = davinci_evm_init, + .init_late = davinci_init_late, .dma_zone_size = SZ_128M, .restart = davinci_restart,MACHINE_END
arch/arm/mach-davinci/board-dm646x-evm.c +1 -0
@@ -798,6 +798,7 @@ MACHINE_START(DAVINCI_DM6467TEVM, "DaVinci DM6467T EVM") .init_irq = davinci_irq_init, .timer = &davinci_timer, .init_machine = evm_init, + .init_late = davinci_init_late, .dma_zone_size = SZ_128M, .restart = davinci_restart,MACHINE_END
arch/arm/mach-davinci/board-mityomapl138.c +1 -0
@@ -572,6 +572,7 @@ MACHINE_START(MITYOMAPL138, "MityDSP-L138/MityARM-1808") .init_irq = cp_intc_init, .timer = &davinci_timer, .init_machine = mityomapl138_init, + .init_late = davinci_init_late, .dma_zone_size = SZ_128M, .restart = da8xx_restart,MACHINE_END
arch/arm/mach-davinci/board-neuros-osd2.c +1 -0
@@ -278,6 +278,7 @@ MACHINE_START(NEUROS_OSD2, "Neuros OSD2") .init_irq = davinci_irq_init, .timer = &davinci_timer, .init_machine = davinci_ntosd2_init, + .init_late = davinci_init_late, .dma_zone_size = SZ_128M, .restart = davinci_restart,MACHINE_END
arch/arm/mach-davinci/board-omapl138-hawk.c +1 -0
@@ -343,6 +343,7 @@ MACHINE_START(OMAPL138_HAWKBOARD, "AM18x/OMAP-L138 Hawkboard") .init_irq = cp_intc_init, .timer = &davinci_timer, .init_machine = omapl138_hawk_init, + .init_late = davinci_init_late, .dma_zone_size = SZ_128M, .restart = da8xx_restart,MACHINE_END
arch/arm/mach-davinci/board-sffsdr.c +1 -0
@@ -157,6 +157,7 @@ MACHINE_START(SFFSDR, "Lyrtech SFFSDR") .init_irq = davinci_irq_init, .timer = &davinci_timer, .init_machine = davinci_sffsdr_init, + .init_late = davinci_init_late, .dma_zone_size = SZ_128M, .restart = davinci_restart,MACHINE_END
arch/arm/mach-davinci/board-tnetv107x-evm.c +1 -0
@@ -282,6 +282,7 @@ MACHINE_START(TNETV107X, "TNETV107X EVM") .init_irq = cp_intc_init, .timer = &davinci_timer, .init_machine = tnetv107x_evm_board_init, + .init_late = davinci_init_late, .dma_zone_size = SZ_128M, .restart = tnetv107x_restart,MACHINE_END
arch/arm/mach-davinci/clock.c +1 -2
@@ -213,7 +213,7 @@ EXPORT_SYMBOL(clk_unregister);/* * Disable any unused clocks left on by the bootloader */ -static int __init clk_disable_unused (void ) +int __init davinci_clk_disable_unused (void ) {struct clk *ck;
@@ -237,7 +237,6 @@ static int __init clk_disable_unused(void) return 0; } -late_initcall (clk_disable_unused);#endif static unsigned long clk_sysclk_recalc (struct clk *clk)
arch/arm/mach-davinci/common.c +7 -0
@@ -117,3 +117,10 @@ void __init davinci_common_init(struct davinci_soc_info *soc_info) err:panic ("davinci_common_init: SoC Initialization failed\n" ); } + +void __init davinci_init_late (void ) +{ +davinci_cpufreq_init (); +davinci_pm_init (); +davinci_clk_disable_unused (); +}
arch/arm/mach-davinci/cpufreq.c +1 -2
@@ -240,10 +240,9 @@ static struct platform_driver davinci_cpufreq_driver = { .remove = __exit_p(davinci_cpufreq_remove), }; -static int __init davinci_cpufreq_init (void ) +int __init davinci_cpufreq_init (void ) {return platform_driver_probe (&davinci_cpufreq_driver, davinci_cpufreq_probe); } -late_initcall (davinci_cpufreq_init);
arch/arm/mach-davinci/include/mach/common.h +19 -0
@@ -84,6 +84,25 @@ extern struct davinci_soc_info davinci_soc_info;extern void davinci_common_init (struct davinci_soc_info *soc_info);extern void davinci_init_ide (void );void davinci_restart (char mode,const char *cmd); +void davinci_init_late (void ); + +#ifdef CONFIG_DAVINCI_RESET_CLOCKS +int davinci_clk_disable_unused (void ); +#else +static inline int davinci_clk_disable_unused (void ) {return 0 ; } +#endif + +#ifdef CONFIG_CPU_FREQ +int davinci_cpufreq_init (void ); +#else +static inline int davinci_cpufreq_init (void ) {return 0 ; } +#endif + +#ifdef CONFIG_SUSPEND +int davinci_pm_init (void ); +#else +static inline int davinci_pm_init (void ) {return 0 ; } +#endif /* standard place to map on-chip SRAMs; they *may* support DMA */ #define SRAM_VIRT 0xfffe0000
arch/arm/mach-davinci/pm.c +1 -2
@@ -152,8 +152,7 @@ static struct platform_driver davinci_pm_driver = { .remove = __exit_p(davinci_pm_remove), }; -static int __init davinci_pm_init (void ) +int __init davinci_pm_init (void ) {return platform_driver_probe (&davinci_pm_driver, davinci_pm_probe); } -late_initcall (davinci_pm_init);
Signature · 1 line
1.7.5.4
PATCH 2/15 ARM: davinci: use machine specific hook for late init
Hi Shawn,
Quoted 9 lines · Shawn Guo
Cc Sekhar Nori <[email protected]>Cc Kevin Hilman <[email protected]>Signed-off-by Shawn Guo <[email protected]>arch/arm/mach-davinci/board-dm646x-evm.c +0
-0
arch/arm/mach-davinci/board-dm646x-evm.c MACHINE_START(DAVINCI_DM6467TEVM, "DaVinci DM6467T EVM") · line 804
Quoted 7 lines
arch/arm/mach-davinci/board-dm646x-evm.c +1
-0@@ -798,6 +798,7 @@ MACHINE_START(DAVINCI_DM6467TEVM, "DaVinci DM6467T EVM") .init_irq = davinci_irq_init, .timer = &davinci_timer, .init_machine = evm_init, + .init_late = davinci_init_late, .dma_zone_size = SZ_128M, .restart = davinci_restart,MACHINE_END
There is another machine defined in the board-dm646x-evm.c file which needs to be updated too. You can apply the following diff.
(quoted diff) +0 -0
b/arch/arm/mach-davinci/board-dm646x-index f213359..958679a 100644
arch/arm/mach-davinci/board-dm646x-evm.c +1 -0
@@ -788,6 +788,7 @@ MACHINE_START(DAVINCI_DM6467_EVM, "DaVinci DM646x EVM") .init_irq = davinci_irq_init, .timer = &davinci_timer, .init_machine = evm_init, + .init_late = davinci_init_late, .dma_zone_size = SZ_128M, .restart = davinci_restart,MACHINE_END
With this fixed, please also add my:
Thanks,
Sekhar
PATCH 2/15 ARM: davinci: use machine specific hook for late init
Quoted 4 lines · Sekhar Nori
With this fixed, please also add my:
Acked-by Sekhar Nori <[email protected]>
Problem fixed, ack added. Thanks, Sekhar.
Signature · 2 lines
Regards, Shawn
PATCH 3/15 ARM: ep93xx: use machine specific hook for late init
In reply to Shawn Guo--- arch/arm/mach-ep93xx/adssphere.c | 1 + arch/arm/mach-ep93xx/core.c | 5 +++++ arch/arm/mach-ep93xx/crunch.c | 4 +--- arch/arm/mach-ep93xx/edb93xx.c | 8 ++++++++ arch/arm/mach-ep93xx/gesbc9312.c | 1 + arch/arm/mach-ep93xx/include/mach/platform.h | 7 +++++++ arch/arm/mach-ep93xx/micro9.c | 4 ++++ arch/arm/mach-ep93xx/simone.c | 1 + arch/arm/mach-ep93xx/snappercl15.c | 1 + arch/arm/mach-ep93xx/ts72xx.c | 1 + arch/arm/mach-ep93xx/vision_ep9307.c | 1 + 11 files changed, 31 insertions(+), 3 deletions(-)
arch/arm/mach-ep93xx/adssphere.c +1 -0
@@ -41,5 +41,6 @@ MACHINE_START(ADSSPHERE, "ADS Sphere board") .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = adssphere_init_machine, + .init_late = ep93xx_init_late, .restart = ep93xx_restart,MACHINE_END
arch/arm/mach-ep93xx/core.c +5 -0
@@ -904,3 +904,8 @@ void ep93xx_restart(char mode, const char *cmd)while (1 ) ; } + +void __init ep93xx_init_late (void ) +{ +crunch_init (); +}
arch/arm/mach-ep93xx/crunch.c +1 -3
@@ -79,12 +79,10 @@ static struct notifier_block crunch_notifier_block = { .notifier_call = crunch_do, }; -static int __init crunch_init (void ) +int __init crunch_init (void ) {thread_register_notifier (&crunch_notifier_block); elf_hwcap |=HWCAP_CRUNCH ;return 0 ; } - -late_initcall (crunch_init);
arch/arm/mach-ep93xx/edb93xx.c +8 -0
@@ -255,6 +255,7 @@ MACHINE_START(EDB9301, "Cirrus Logic EDB9301 Evaluation Board") .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = edb93xx_init_machine, + .init_late = ep93xx_init_late, .restart = ep93xx_restart, MACHINE_END#endif
@@ -268,6 +269,7 @@ MACHINE_START(EDB9302, "Cirrus Logic EDB9302 Evaluation Board") .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = edb93xx_init_machine, + .init_late = ep93xx_init_late, .restart = ep93xx_restart, MACHINE_END#endif
@@ -281,6 +283,7 @@ MACHINE_START(EDB9302A, "Cirrus Logic EDB9302A Evaluation Board") .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = edb93xx_init_machine, + .init_late = ep93xx_init_late, .restart = ep93xx_restart, MACHINE_END#endif
@@ -294,6 +297,7 @@ MACHINE_START(EDB9307, "Cirrus Logic EDB9307 Evaluation Board") .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = edb93xx_init_machine, + .init_late = ep93xx_init_late, .restart = ep93xx_restart, MACHINE_END#endif
@@ -307,6 +311,7 @@ MACHINE_START(EDB9307A, "Cirrus Logic EDB9307A Evaluation Board") .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = edb93xx_init_machine, + .init_late = ep93xx_init_late, .restart = ep93xx_restart, MACHINE_END#endif
@@ -320,6 +325,7 @@ MACHINE_START(EDB9312, "Cirrus Logic EDB9312 Evaluation Board") .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = edb93xx_init_machine, + .init_late = ep93xx_init_late, .restart = ep93xx_restart, MACHINE_END#endif
@@ -333,6 +339,7 @@ MACHINE_START(EDB9315, "Cirrus Logic EDB9315 Evaluation Board") .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = edb93xx_init_machine, + .init_late = ep93xx_init_late, .restart = ep93xx_restart, MACHINE_END#endif
@@ -346,6 +353,7 @@ MACHINE_START(EDB9315A, "Cirrus Logic EDB9315A Evaluation Board") .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = edb93xx_init_machine, + .init_late = ep93xx_init_late, .restart = ep93xx_restart, MACHINE_END#endif
arch/arm/mach-ep93xx/gesbc9312.c +1 -0
@@ -41,5 +41,6 @@ MACHINE_START(GESBC9312, "Glomation GESBC-9312-sx") .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = gesbc9312_init_machine, + .init_late = ep93xx_init_late, .restart = ep93xx_restart,MACHINE_END
arch/arm/mach-ep93xx/include/mach/platform.h +7 -0
@@ -53,5 +53,12 @@ void ep93xx_init_devices(void);extern struct sys_timer ep93xx_timer;void ep93xx_restart (char ,const char *); +void ep93xx_init_late (void ); + +#ifdef CONFIG_CRUNCH +int crunch_init (void ); +#else +static inline int crunch_init (void ) {return 0 ; } +#endif #endif
arch/arm/mach-ep93xx/micro9.c +4 -0
@@ -85,6 +85,7 @@ MACHINE_START(MICRO9, "Contec Micro9-High") .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = micro9_init_machine, + .init_late = ep93xx_init_late, .restart = ep93xx_restart, MACHINE_END#endif
@@ -98,6 +99,7 @@ MACHINE_START(MICRO9M, "Contec Micro9-Mid") .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = micro9_init_machine, + .init_late = ep93xx_init_late, .restart = ep93xx_restart, MACHINE_END#endif
@@ -111,6 +113,7 @@ MACHINE_START(MICRO9L, "Contec Micro9-Lite") .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = micro9_init_machine, + .init_late = ep93xx_init_late, .restart = ep93xx_restart, MACHINE_END#endif
@@ -124,6 +127,7 @@ MACHINE_START(MICRO9S, "Contec Micro9-Slim") .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = micro9_init_machine, + .init_late = ep93xx_init_late, .restart = ep93xx_restart, MACHINE_END#endif
arch/arm/mach-ep93xx/simone.c +1 -0
@@ -86,5 +86,6 @@ MACHINE_START(SIM_ONE, "Simplemachines Sim.One Board") .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = simone_init_machine, + .init_late = ep93xx_init_late, .restart = ep93xx_restart,MACHINE_END
arch/arm/mach-ep93xx/snappercl15.c +1 -0
@@ -183,5 +183,6 @@ MACHINE_START(SNAPPER_CL15, "Bluewater Systems Snapper CL15") .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = snappercl15_init_machine, + .init_late = ep93xx_init_late, .restart = ep93xx_restart,MACHINE_END
arch/arm/mach-ep93xx/ts72xx.c +1 -0
@@ -252,5 +252,6 @@ MACHINE_START(TS72XX, "Technologic Systems TS-72xx SBC") .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = ts72xx_init_machine, + .init_late = ep93xx_init_late, .restart = ep93xx_restart,MACHINE_END
arch/arm/mach-ep93xx/vision_ep9307.c +1 -0
@@ -367,5 +367,6 @@ MACHINE_START(VISION_EP9307, "Vision Engraving Systems EP9307") .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = vision_init_machine, + .init_late = ep93xx_init_late, .restart = ep93xx_restart,MACHINE_END
Signature · 1 line
1.7.5.4
PATCH 3/15 ARM: ep93xx: use machine specific hook for late init
Quoted 4 lines · Shawn Guo
Cc Hartley Sweeten <[email protected]>Cc Ryan Mallon <[email protected]>Signed-off-by Shawn Guo <[email protected]>
Quoted 13 lines
--- arch/arm/mach-ep93xx/adssphere.c | 1 + arch/arm/mach-ep93xx/core.c | 5 +++++ arch/arm/mach-ep93xx/crunch.c | 4 +--- arch/arm/mach-ep93xx/edb93xx.c | 8 ++++++++ arch/arm/mach-ep93xx/gesbc9312.c | 1 + arch/arm/mach-ep93xx/include/mach/platform.h | 7 +++++++ arch/arm/mach-ep93xx/micro9.c | 4 ++++ arch/arm/mach-ep93xx/simone.c | 1 + arch/arm/mach-ep93xx/snappercl15.c | 1 + arch/arm/mach-ep93xx/ts72xx.c | 1 + arch/arm/mach-ep93xx/vision_ep9307.c | 1 + 11 files changed, 31 insertions(+), 3 deletions(-)
Shawn,
I'm ok with these changes for ep93xx.
I'm not sure what tree this patch was based on but you will have some fuzz issues with linux-next due to some other changes to core.c, snappercl15.c, and ts72xx.c. Just wanted to make sure you were aware of this.
Regards,
Hartley
PATCH 3/15 ARM: ep93xx: use machine specific hook for late init
Quoted 6 lines · H Hartley Sweeten
Shawn,
I'm ok with these changes for ep93xx.
Thanks, Hartley.
Quoted 5 lines
I'm not sure what tree this patch was based on but you will have some fuzz issues with linux-next due to some other changes to
core.c,snappercl15.c, andts72xx.c. Just wanted to make sure you were aware of this.
Noted. I will send the series to arm-soc and hopefully Arnd and Olof will have it sorted out there.
Signature · 2 lines
Regards, Shawn
PATCH 4/15 ARM: exynos: use machine specific hook for late init
In reply to Shawn Guo--- arch/arm/mach-exynos/common.c | 5 +++++ arch/arm/mach-exynos/common.h | 7 +++++++ arch/arm/mach-exynos/mach-armlex4210.c | 1 + arch/arm/mach-exynos/mach-exynos4-dt.c | 1 + arch/arm/mach-exynos/mach-exynos5-dt.c | 1 + arch/arm/mach-exynos/mach-nuri.c | 1 + arch/arm/mach-exynos/mach-origen.c | 1 + arch/arm/mach-exynos/mach-smdk4x12.c | 1 + arch/arm/mach-exynos/mach-smdkv310.c | 1 + arch/arm/mach-exynos/mach-universal_c210.c | 1 + arch/arm/mach-exynos/pm_domains.c | 3 +-- 11 files changed, 21 insertions(+), 2 deletions(-)
arch/arm/mach-exynos/common.c +5 -0
@@ -285,6 +285,11 @@ void exynos5_restart(char mode, const char *cmd)__raw_writel (0x1 ,EXYNOS_SWRESET ); } +void __init exynos_init_late (void ) +{ +exynos_pm_late_initcall (); +} +/* * exynos_map_io *
arch/arm/mach-exynos/common.h +7 -0
@@ -19,6 +19,13 @@ void exynos4_init_irq(void);void exynos5_init_irq (void );void exynos4_restart (char mode,const char *cmd);void exynos5_restart (char mode,const char *cmd); +void exynos_init_late (void ); + +#ifdef CONFIG_PM_GENERIC_DOMAINS +int exynos_pm_late_initcall (void ); +#else +static int exynos_pm_late_initcall (void ) {return 0 ; } +#endif #ifdef CONFIG_ARCH_EXYNOS4 void exynos4_register_clocks (void );
arch/arm/mach-exynos/mach-armlex4210.c +1 -0
@@ -214,6 +214,7 @@ MACHINE_START(ARMLEX4210, "ARMLEX4210") .map_io = armlex4210_map_io, .handle_irq = gic_handle_irq, .init_machine = armlex4210_machine_init, + .init_late = exynos_init_late, .timer = &exynos4_timer, .restart = exynos4_restart,MACHINE_END
arch/arm/mach-exynos/mach-exynos4-dt.c +1 -0
@@ -83,6 +83,7 @@ DT_MACHINE_START(EXYNOS4210_DT, "Samsung Exynos4 (Flattened Device Tree)") .map_io = exynos4210_dt_map_io, .handle_irq = gic_handle_irq, .init_machine = exynos4210_dt_machine_init, + .init_late = exynos_init_late, .timer = &exynos4_timer, .dt_compat = exynos4210_dt_compat, .restart = exynos4_restart,
arch/arm/mach-exynos/mach-exynos5-dt.c +1 -0
@@ -72,6 +72,7 @@ DT_MACHINE_START(EXYNOS5_DT, "SAMSUNG EXYNOS5 (Flattened Device Tree)") .map_io = exynos5250_dt_map_io, .handle_irq = gic_handle_irq, .init_machine = exynos5250_dt_machine_init, + .init_late = exynos_init_late, .timer = &exynos4_timer, .dt_compat = exynos5250_dt_compat, .restart = exynos5_restart,
arch/arm/mach-exynos/mach-nuri.c +1 -0
@@ -1350,6 +1350,7 @@ MACHINE_START(NURI, "NURI") .map_io = nuri_map_io, .handle_irq = gic_handle_irq, .init_machine = nuri_machine_init, + .init_late = exynos_init_late, .timer = &exynos4_timer, .reserve = &nuri_reserve, .restart = exynos4_restart,
arch/arm/mach-exynos/mach-origen.c +1 -0
@@ -735,6 +735,7 @@ MACHINE_START(ORIGEN, "ORIGEN") .map_io = origen_map_io, .handle_irq = gic_handle_irq, .init_machine = origen_machine_init, + .init_late = exynos_init_late, .timer = &exynos4_timer, .reserve = &origen_reserve, .restart = exynos4_restart,
arch/arm/mach-exynos/mach-smdk4x12.c +1 -0
@@ -303,6 +303,7 @@ 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,MACHINE_END
arch/arm/mach-exynos/mach-smdkv310.c +1 -0
@@ -393,6 +393,7 @@ MACHINE_START(SMDKC210, "SMDKC210") .map_io = smdkv310_map_io, .handle_irq = gic_handle_irq, .init_machine = smdkv310_machine_init, + .init_late = exynos_init_late, .timer = &exynos4_timer, .restart = exynos4_restart,MACHINE_END
arch/arm/mach-exynos/mach-universal_c210.c +1 -0
@@ -1112,6 +1112,7 @@ MACHINE_START(UNIVERSAL_C210, "UNIVERSAL_C210") .map_io = universal_map_io, .handle_irq = gic_handle_irq, .init_machine = universal_machine_init, + .init_late = exynos_init_late, .timer = &exynos4_timer, .reserve = &universal_reserve, .restart = exynos4_restart,
arch/arm/mach-exynos/pm_domains.c +1 -2
@@ -193,9 +193,8 @@ static __init int exynos4_pm_init_power_domain(void) }arch_initcall (exynos4_pm_init_power_domain); -static __init int exynos_pm_late_initcall (void ) +int __init exynos_pm_late_initcall (void ) {pm_genpd_poweroff_unused ();return 0 ; } -late_initcall (exynos_pm_late_initcall);
Signature · 1 line
1.7.5.4
PATCH 5/15 ARM: imx: use machine specific hook for late init
In reply to Shawn Guo--- arch/arm/mach-imx/cpu-imx5.c | 6 +--- arch/arm/mach-imx/imx51-dt.c | 1 + arch/arm/mach-imx/mach-cpuimx51.c | 1 + arch/arm/mach-imx/mach-cpuimx51sd.c | 1 + arch/arm/mach-imx/mach-mx51_3ds.c | 1 + arch/arm/mach-imx/mach-mx51_babbage.c | 1 + arch/arm/mach-imx/mach-mx51_efikamx.c | 42 +++++++++++++++++-------------- arch/arm/mach-imx/mach-mx51_efikasb.c | 28 +++++++++++--------- arch/arm/mach-imx/mach-pcm037.c | 6 ++++ arch/arm/mach-imx/mach-pcm037_eet.c | 5 +-- arch/arm/mach-imx/mm-imx5.c | 5 +++ arch/arm/mach-imx/pcm037.h | 6 ++++ arch/arm/plat-mxc/include/mach/common.h | 7 +++++ 13 files changed, 71 insertions(+), 39 deletions(-)
arch/arm/mach-imx/cpu-imx5.c +1 -5
@@ -62,11 +62,8 @@ EXPORT_SYMBOL(mx51_revision);* Dependent on link order - so the assumption is that vfp_init is called * before us. */ -static int __init mx51_neon_fixup (void ) +int __init mx51_neon_fixup (void ) { -if (!cpu_is_mx51 ()) -return 0 ; -if (mx51_revision () <IMX_CHIP_REVISION_3_0 && (elf_hwcap &HWCAP_NEON )) { elf_hwcap &= ~HWCAP_NEON ;
@@ -75,7 +72,6 @@ static int __init mx51_neon_fixup(void) return 0; } -late_initcall (mx51_neon_fixup);#endif static int get_mx53_srev (void )
arch/arm/mach-imx/imx51-dt.c +1 -0
@@ -115,6 +115,7 @@ DT_MACHINE_START(IMX51_DT, "Freescale i.MX51 (Device Tree Support)") .handle_irq = imx51_handle_irq, .timer = &imx51_timer, .init_machine = imx51_dt_init, + .init_late = imx51_init_late, .dt_compat = imx51_dt_board_compat, .restart = mxc_restart,MACHINE_END
arch/arm/mach-imx/mach-cpuimx51.c +1 -0
@@ -297,5 +297,6 @@ MACHINE_START(EUKREA_CPUIMX51, "Eukrea CPUIMX51 Module") .handle_irq = imx51_handle_irq, .timer = &mxc_timer, .init_machine = eukrea_cpuimx51_init, + .init_late = imx51_init_late, .restart = mxc_restart,MACHINE_END
arch/arm/mach-imx/mach-cpuimx51sd.c +1 -0
@@ -335,5 +335,6 @@ MACHINE_START(EUKREA_CPUIMX51SD, "Eukrea CPUIMX51SD") .handle_irq = imx51_handle_irq, .timer = &mxc_timer, .init_machine = eukrea_cpuimx51sd_init, + .init_late = imx51_init_late, .restart = mxc_restart,MACHINE_END
arch/arm/mach-imx/mach-mx51_3ds.c +1 -0
@@ -175,5 +175,6 @@ MACHINE_START(MX51_3DS, "Freescale MX51 3-Stack Board") .handle_irq = imx51_handle_irq, .timer = &mx51_3ds_timer, .init_machine = mx51_3ds_init, + .init_late = imx51_init_late, .restart = mxc_restart,MACHINE_END
arch/arm/mach-imx/mach-mx51_babbage.c +1 -0
@@ -426,5 +426,6 @@ MACHINE_START(MX51_BABBAGE, "Freescale MX51 Babbage Board") .handle_irq = imx51_handle_irq, .timer = &mx51_babbage_timer, .init_machine = mx51_babbage_init, + .init_late = imx51_init_late, .restart = mxc_restart,MACHINE_END
arch/arm/mach-imx/mach-mx51_efikamx.c +23 -19
57 lines not on this page · raw message
arch/arm/mach-imx/mach-mx51_efikasb.c +16 -12
@@ -211,22 +211,25 @@ static void mx51_efikasb_power_off(void)static int __init mx51_efikasb_power_init (void ) { -if (machine_is_mx51_efikasb ()) { - pwgt1 =regulator_get (NULL ,"pwgt1" ); - pwgt2 =regulator_get (NULL ,"pwgt2" ); -if (!IS_ERR (pwgt1) && !IS_ERR (pwgt2)) { -regulator_enable (pwgt1); -regulator_enable (pwgt2); - } -gpio_request (EFIKASB_POWEROFF ,"poweroff" ); - pm_power_off = mx51_efikasb_power_off; - -regulator_has_full_constraints (); + pwgt1 =regulator_get (NULL ,"pwgt1" ); + pwgt2 =regulator_get (NULL ,"pwgt2" ); +if (!IS_ERR (pwgt1) && !IS_ERR (pwgt2)) { +regulator_enable (pwgt1); +regulator_enable (pwgt2); } +gpio_request (EFIKASB_POWEROFF ,"poweroff" ); + pm_power_off = mx51_efikasb_power_off; + +regulator_has_full_constraints ();return 0 ; } -late_initcall (mx51_efikasb_power_init); + +static void __init mx51_efikasb_init_late (void ) +{ +imx51_init_late (); +mx51_efikasb_power_init (); +}/* 01 R1.3 board 10 R2.0 board */
@@ -287,6 +290,7 @@ MACHINE_START(MX51_EFIKASB, "Genesi Efika Smartbook") .init_irq = mx51_init_irq, .handle_irq = imx51_handle_irq, .init_machine = efikasb_board_init, + .init_late = mx51_efikasb_init_late, .timer = &mx51_efikasb_timer, .restart = mxc_restart,MACHINE_END
arch/arm/mach-imx/mach-pcm037.c +6 -0
@@ -694,6 +694,11 @@ static void __init pcm037_reserve(void) MX3_CAMERA_BUF_SIZE); } +static void __init pcm037_init_late (void ) +{ +pcm037_eet_init_devices (); +} +MACHINE_START (PCM037 ,"Phytec Phycore pcm037" )/* Maintainer: Pengutronix */ .atag_offset = 0x100,
@@ -704,5 +709,6 @@ MACHINE_START(PCM037, "Phytec Phycore pcm037") .handle_irq = imx31_handle_irq, .timer = &pcm037_timer, .init_machine = pcm037_init, + .init_late = pcm037_init_late, .restart = mxc_restart,MACHINE_END
arch/arm/mach-imx/mach-pcm037_eet.c +2 -3
@@ -160,9 +160,9 @@ static const struct gpio_keys_platform_data .rep = 0, /* No auto-repeat */ }; -static int __init eet_init_devices (void ) +int __init pcm037_eet_init_devices (void ) { -if (!machine_is_pcm037 () ||pcm037_variant () !=PCM037_EET ) +if (pcm037_variant () !=PCM037_EET )return 0 ; mxc_iomux_setup_multiple_pins(pcm037_eet_pins,
@@ -176,4 +176,3 @@ static int __init eet_init_devices(void)return 0 ; } -late_initcall (eet_init_devices);
arch/arm/mach-imx/mm-imx5.c +5 -0
@@ -234,3 +234,8 @@ void __init imx53_soc_init(void)platform_device_register_simple ("imx31-audmux" ,0 , imx53_audmux_res,ARRAY_SIZE (imx53_audmux_res)); } + +void __init imx51_init_late (void ) +{ +mx51_neon_fixup (); +}
arch/arm/mach-imx/pcm037.h +6 -0
@@ -8,4 +8,10 @@ enum pcm037_board_variant {extern enum pcm037_board_variant pcm037_variant (void ); +#ifdef CONFIG_MACH_PCM037_EET +int pcm037_eet_init_devices (void ); +#else +static inline int pcm037_eet_init_devices (void ) {return 0 ; } +#endif +#endif
arch/arm/plat-mxc/include/mach/common.h +7 -0
@@ -53,6 +53,7 @@ extern void imx35_soc_init(void);extern void imx50_soc_init (void );extern void imx51_soc_init (void );extern void imx53_soc_init (void ); +extern void imx51_init_late (void );extern void epit_timer_init (struct clk *timer_clk,void __iomem *base,int irq);extern void mxc_timer_init (struct clk *timer_clk,void __iomem *,int );extern int mx1_clocks_init (unsigned long fref);
@@ -149,4 +150,10 @@ extern void imx6q_pm_init(void);static inline void imx6q_pm_init (void ) {}#endif +#ifdef CONFIG_NEON +extern int mx51_neon_fixup (void ); +#else +static inline int mx51_neon_fixup (void ) {return 0 ; } +#endif +#endif
Signature · 1 line
1.7.5.4
Sascha Hauer
maintainerPATCH 5/15 ARM: imx: use machine specific hook for late init
Quoted 17 lines · Shawn Guo
Cc Sascha Hauer <[email protected]>Signed-off-by Shawn Guo <[email protected]>--- arch/arm/mach-imx/cpu-imx5.c | 6 +--- arch/arm/mach-imx/imx51-dt.c | 1 + arch/arm/mach-imx/mach-cpuimx51.c | 1 + arch/arm/mach-imx/mach-cpuimx51sd.c | 1 + arch/arm/mach-imx/mach-mx51_3ds.c | 1 + arch/arm/mach-imx/mach-mx51_babbage.c | 1 + arch/arm/mach-imx/mach-mx51_efikamx.c | 42 +++++++++++++++++-------------- arch/arm/mach-imx/mach-mx51_efikasb.c | 28 +++++++++++--------- arch/arm/mach-imx/mach-pcm037.c | 6 ++++ arch/arm/mach-imx/mach-pcm037_eet.c | 5 +-- arch/arm/mach-imx/mm-imx5.c | 5 +++ arch/arm/mach-imx/pcm037.h | 6 ++++ arch/arm/plat-mxc/include/mach/common.h | 7 +++++ 13 files changed, 71 insertions(+), 39 deletions(-)
Signature · 4 lines
Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
PATCH 6/15 ARM: msm: use machine specific hook for late init
In reply to Shawn Guo--- arch/arm/mach-msm/board-halibut.c | 6 ++++++ arch/arm/mach-msm/board-mahimahi.c | 6 ++++++ arch/arm/mach-msm/board-msm7x27.c | 9 +++++++++ arch/arm/mach-msm/board-msm7x30.c | 8 ++++++++ arch/arm/mach-msm/board-msm8960.c | 7 +++++++ arch/arm/mach-msm/board-msm8x60.c | 10 ++++++++++ arch/arm/mach-msm/board-qsd8x50.c | 7 +++++++ arch/arm/mach-msm/board-sapphire.c | 6 ++++++ arch/arm/mach-msm/board-trout.c | 6 ++++++ arch/arm/mach-msm/include/mach/board.h | 6 ++++++ arch/arm/mach-msm/smd_debug.c | 3 +-- 11 files changed, 72 insertions(+), 2 deletions(-)
arch/arm/mach-msm/board-halibut.c +6 -0
@@ -94,6 +94,11 @@ static void __init halibut_map_io(void)msm_clock_init (msm_clocks_7x01a, msm_num_clocks_7x01a); } +static void __init halibut_init_late (void ) +{ +smd_debugfs_init (); +} +MACHINE_START (HALIBUT ,"Halibut Board (QCT SURF7200A)" ) .atag_offset = 0x100, .fixup = halibut_fixup,
@@ -101,5 +106,6 @@ MACHINE_START(HALIBUT, "Halibut Board (QCT SURF7200A)") .init_early = halibut_init_early, .init_irq = halibut_init_irq, .init_machine = halibut_init, + .init_late = halibut_init_late, .timer = &msm_timer,MACHINE_END
arch/arm/mach-msm/board-mahimahi.c +6 -0
@@ -71,6 +71,11 @@ static void __init mahimahi_map_io(void)msm_clock_init (); } +static void __init mahimahi_init_late (void ) +{ +smd_debugfs_init (); +} +extern struct sys_timer msm_timer;MACHINE_START (MAHIMAHI ,"mahimahi" )
@@ -79,5 +84,6 @@ MACHINE_START(MAHIMAHI, "mahimahi") .map_io = mahimahi_map_io, .init_irq = msm_init_irq, .init_machine = mahimahi_init, + .init_late = mahimahi_init_late, .timer = &msm_timer,MACHINE_END
arch/arm/mach-msm/board-msm7x27.c +9 -0
@@ -128,11 +128,17 @@ static void __init msm7x2x_map_io(void)#endif } +static void __init msm7x2x_init_late (void ) +{ +smd_debugfs_init (); +} +MACHINE_START (MSM7X27_SURF ,"QCT MSM7x27 SURF" ) .atag_offset = 0x100, .map_io = msm7x2x_map_io, .init_irq = msm7x2x_init_irq, .init_machine = msm7x2x_init, + .init_late = msm7x2x_init_late, .timer = &msm_timer,MACHINE_END
@@ -141,6 +147,7 @@ MACHINE_START(MSM7X27_FFA, "QCT MSM7x27 FFA") .map_io = msm7x2x_map_io, .init_irq = msm7x2x_init_irq, .init_machine = msm7x2x_init, + .init_late = msm7x2x_init_late, .timer = &msm_timer,MACHINE_END
@@ -149,6 +156,7 @@ MACHINE_START(MSM7X25_SURF, "QCT MSM7x25 SURF") .map_io = msm7x2x_map_io, .init_irq = msm7x2x_init_irq, .init_machine = msm7x2x_init, + .init_late = msm7x2x_init_late, .timer = &msm_timer,MACHINE_END
@@ -157,5 +165,6 @@ MACHINE_START(MSM7X25_FFA, "QCT MSM7x25 FFA") .map_io = msm7x2x_map_io, .init_irq = msm7x2x_init_irq, .init_machine = msm7x2x_init, + .init_late = msm7x2x_init_late, .timer = &msm_timer,MACHINE_END
arch/arm/mach-msm/board-msm7x30.c +8 -0
@@ -120,6 +120,11 @@ static void __init msm7x30_map_io(void)msm_clock_init (msm_clocks_7x30, msm_num_clocks_7x30); } +static void __init msm7x30_init_late (void ) +{ +smd_debugfs_init (); +} +MACHINE_START (MSM7X30_SURF ,"QCT MSM7X30 SURF" ) .atag_offset = 0x100, .fixup = msm7x30_fixup,
@@ -127,6 +132,7 @@ MACHINE_START(MSM7X30_SURF, "QCT MSM7X30 SURF") .map_io = msm7x30_map_io, .init_irq = msm7x30_init_irq, .init_machine = msm7x30_init, + .init_late = msm7x30_init_late, .timer = &msm_timer,MACHINE_END
@@ -137,6 +143,7 @@ MACHINE_START(MSM7X30_FFA, "QCT MSM7X30 FFA") .map_io = msm7x30_map_io, .init_irq = msm7x30_init_irq, .init_machine = msm7x30_init, + .init_late = msm7x30_init_late, .timer = &msm_timer,MACHINE_END
@@ -147,5 +154,6 @@ MACHINE_START(MSM7X30_FLUID, "QCT MSM7X30 FLUID") .map_io = msm7x30_map_io, .init_irq = msm7x30_init_irq, .init_machine = msm7x30_init, + .init_late = msm7x30_init_late, .timer = &msm_timer,MACHINE_END
arch/arm/mach-msm/board-msm8960.c +7 -0
@@ -93,6 +93,11 @@ static void __init msm8960_rumi3_init(void)platform_add_devices (rumi3_devices,ARRAY_SIZE (rumi3_devices)); } +static void __init msm8960_init_late (void ) +{ +smd_debugfs_init (); +} +MACHINE_START (MSM8960_SIM ,"QCT MSM8960 SIMULATOR" ) .fixup = msm8960_fixup, .reserve = msm8960_reserve,
@@ -101,6 +106,7 @@ MACHINE_START(MSM8960_SIM, "QCT MSM8960 SIMULATOR") .timer = &msm_timer, .handle_irq = gic_handle_irq, .init_machine = msm8960_sim_init, + .init_late = msm8960_init_late, MACHINE_ENDMACHINE_START (MSM8960_RUMI3 ,"QCT MSM8960 RUMI3" )
@@ -111,5 +117,6 @@ MACHINE_START(MSM8960_RUMI3, "QCT MSM8960 RUMI3") .timer = &msm_timer, .handle_irq = gic_handle_irq, .init_machine = msm8960_rumi3_init, + .init_late = msm8960_init_late,MACHINE_END
arch/arm/mach-msm/board-msm8x60.c +10 -0
@@ -68,6 +68,11 @@ static void __init msm8x60_init(void) { } +static void __init msm8x60_init_late (void ) +{ +smd_debugfs_init (); +} +#ifdef CONFIG_OF static struct of_dev_auxdata msm_auxdata_lookup[]__initdata = { {}
@@ -106,6 +111,7 @@ MACHINE_START(MSM8X60_RUMI3, "QCT MSM8X60 RUMI3") .init_irq = msm8x60_init_irq, .handle_irq = gic_handle_irq, .init_machine = msm8x60_init, + .init_late = msm8x60_init_late, .timer = &msm_timer,MACHINE_END
@@ -116,6 +122,7 @@ MACHINE_START(MSM8X60_SURF, "QCT MSM8X60 SURF") .init_irq = msm8x60_init_irq, .handle_irq = gic_handle_irq, .init_machine = msm8x60_init, + .init_late = msm8x60_init_late, .timer = &msm_timer,MACHINE_END
@@ -126,6 +133,7 @@ MACHINE_START(MSM8X60_SIM, "QCT MSM8X60 SIMULATOR") .init_irq = msm8x60_init_irq, .handle_irq = gic_handle_irq, .init_machine = msm8x60_init, + .init_late = msm8x60_init_late, .timer = &msm_timer,MACHINE_END
@@ -136,6 +144,7 @@ MACHINE_START(MSM8X60_FFA, "QCT MSM8X60 FFA") .init_irq = msm8x60_init_irq, .handle_irq = gic_handle_irq, .init_machine = msm8x60_init, + .init_late = msm8x60_init_late, .timer = &msm_timer,MACHINE_END
@@ -145,6 +154,7 @@ DT_MACHINE_START(MSM_DT, "Qualcomm MSM (Flattened Device Tree)") .map_io = msm8x60_map_io, .init_irq = msm8x60_init_irq, .init_machine = msm8x60_dt_init, + .init_late = msm8x60_init_late, .timer = &msm_timer, .dt_compat = msm8x60_fluid_match,MACHINE_END
arch/arm/mach-msm/board-qsd8x50.c +7 -0
@@ -191,11 +191,17 @@ static void __init qsd8x50_init(void)qsd8x50_init_mmc (); } +static void __init qsd8x50_init_late (void ) +{ +smd_debugfs_init (); +} +MACHINE_START (QSD8X50_SURF ,"QCT QSD8X50 SURF" ) .atag_offset = 0x100, .map_io = qsd8x50_map_io, .init_irq = qsd8x50_init_irq, .init_machine = qsd8x50_init, + .init_late = qsd8x50_init_late, .timer = &msm_timer,MACHINE_END
@@ -204,5 +210,6 @@ MACHINE_START(QSD8X50A_ST1_5, "QCT QSD8X50A ST1.5") .map_io = qsd8x50_map_io, .init_irq = qsd8x50_init_irq, .init_machine = qsd8x50_init, + .init_late = qsd8x50_init_late, .timer = &msm_timer,MACHINE_END
arch/arm/mach-msm/board-sapphire.c +6 -0
@@ -101,6 +101,11 @@ static void __init sapphire_map_io(void)msm_clock_init (); } +static void __init sapphire_init_late (void ) +{ +smd_debugfs_init (); +} +MACHINE_START (SAPPHIRE ,"sapphire" )/* Maintainer: Brian Swetland <[email protected]> */ .atag_offset = 0x100,
@@ -108,5 +113,6 @@ MACHINE_START(SAPPHIRE, "sapphire") .map_io = sapphire_map_io, .init_irq = sapphire_init_irq, .init_machine = sapphire_init, + .init_late = sapphire_init_late, .timer = &msm_timer,MACHINE_END
arch/arm/mach-msm/board-trout.c +6 -0
@@ -98,6 +98,11 @@ static void __init trout_map_io(void)msm_clock_init (msm_clocks_7x01a, msm_num_clocks_7x01a); } +static void __init trout_init_late (void ) +{ +smd_debugfs_init (); +} +MACHINE_START (TROUT ,"HTC Dream" ) .atag_offset = 0x100, .fixup = trout_fixup,
@@ -105,5 +110,6 @@ MACHINE_START(TROUT, "HTC Dream") .init_early = trout_init_early, .init_irq = trout_init_irq, .init_machine = trout_init, + .init_late = trout_init_late, .timer = &msm_timer,MACHINE_END
arch/arm/mach-msm/include/mach/board.h +6 -0
@@ -47,4 +47,10 @@ int __init msm_add_sdcc(unsigned int controller,struct msm_mmc_platform_data *plat, unsigned int stat_irq, unsigned long stat_irq_flags); +#if defined(CONFIG_MSM_SMD ) && defined(CONFIG_DEBUG_FS ) +int smd_debugfs_init (void ); +#else +static inline int smd_debugfs_init (void ) {return 0 ; } +#endif +#endif
arch/arm/mach-msm/smd_debug.c +1 -2
@@ -216,7 +216,7 @@ static void debug_create(const char *name, umode_t mode,debugfs_create_file (name, mode, dent, fill, &debug_ops); } -static int smd_debugfs_init (void ) +int __init smd_debugfs_init (void ) {struct dentry *dent;
@@ -234,7 +234,6 @@ static int smd_debugfs_init(void) return 0; } -late_initcall (smd_debugfs_init);#endif
Signature · 1 line
1.7.5.4
PATCH 6/15 ARM: msm: use machine specific hook for late init
Quoted 4 lines · Shawn Guo
Cc David Brown <[email protected]>Cc Daniel Walker <[email protected]>Cc Bryan Huntsman <[email protected]>Signed-off-by Shawn Guo <[email protected]>
Quoted 13 lines
--- arch/arm/mach-msm/board-halibut.c | 6 ++++++ arch/arm/mach-msm/board-mahimahi.c | 6 ++++++ arch/arm/mach-msm/board-msm7x27.c | 9 +++++++++ arch/arm/mach-msm/board-msm7x30.c | 8 ++++++++ arch/arm/mach-msm/board-msm8960.c | 7 +++++++ arch/arm/mach-msm/board-msm8x60.c | 10 ++++++++++ arch/arm/mach-msm/board-qsd8x50.c | 7 +++++++ arch/arm/mach-msm/board-sapphire.c | 6 ++++++ arch/arm/mach-msm/board-trout.c | 6 ++++++ arch/arm/mach-msm/include/mach/board.h | 6 ++++++ arch/arm/mach-msm/smd_debug.c | 3 +-- 11 files changed, 72 insertions(+), 2 deletions(-)
Signature · 2 lines
Sent by an employee of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
PATCH 7/15 ARM: omap1: use machine specific hook for late init
In reply to Shawn Guo--- arch/arm/mach-omap1/board-ams-delta.c | 8 +++++++- arch/arm/mach-omap1/board-fsample.c | 1 + arch/arm/mach-omap1/board-generic.c | 1 + arch/arm/mach-omap1/board-h2.c | 1 + arch/arm/mach-omap1/board-h3.c | 1 + arch/arm/mach-omap1/board-htcherald.c | 1 + arch/arm/mach-omap1/board-innovator.c | 1 + arch/arm/mach-omap1/board-nokia770.c | 1 + arch/arm/mach-omap1/board-osk.c | 1 + arch/arm/mach-omap1/board-palmte.c | 1 + arch/arm/mach-omap1/board-palmtt.c | 1 + arch/arm/mach-omap1/board-palmz71.c | 1 + arch/arm/mach-omap1/board-perseus2.c | 1 + arch/arm/mach-omap1/board-sx1.c | 1 + arch/arm/mach-omap1/board-voiceblue.c | 1 + arch/arm/mach-omap1/common.h | 10 ++++++++++ arch/arm/mach-omap1/io.c | 5 +++++ arch/arm/mach-omap1/serial.c | 3 +-- 18 files changed, 37 insertions(+), 3 deletions(-)
arch/arm/mach-omap1/board-ams-delta.c +7 -1
@@ -595,7 +595,12 @@ gpio_free:gpio_free (AMS_DELTA_GPIO_PIN_MODEM_IRQ );return err; } -late_initcall (late_init); + +static void __init ams_delta_init_late (void ) +{ +omap1_init_late (); +late_init (); +}static void __init ams_delta_map_io (void ) {
@@ -611,6 +616,7 @@ MACHINE_START(AMS_DELTA, "Amstrad E3 (Delta)") .reserve = omap_reserve, .init_irq = omap1_init_irq, .init_machine = ams_delta_init, + .init_late = ams_delta_init_late, .timer = &omap1_timer, .restart = omap1_restart,MACHINE_END
arch/arm/mach-omap1/board-fsample.c +1 -0
@@ -383,6 +383,7 @@ MACHINE_START(OMAP_FSAMPLE, "OMAP730 F-Sample") .reserve = omap_reserve, .init_irq = omap1_init_irq, .init_machine = omap_fsample_init, + .init_late = omap1_init_late, .timer = &omap1_timer, .restart = omap1_restart,MACHINE_END
arch/arm/mach-omap1/board-generic.c +1 -0
@@ -88,6 +88,7 @@ MACHINE_START(OMAP_GENERIC, "Generic OMAP1510/1610/1710") .reserve = omap_reserve, .init_irq = omap1_init_irq, .init_machine = omap_generic_init, + .init_late = omap1_init_late, .timer = &omap1_timer, .restart = omap1_restart,MACHINE_END
arch/arm/mach-omap1/board-h2.c +1 -0
@@ -446,6 +446,7 @@ MACHINE_START(OMAP_H2, "TI-H2") .reserve = omap_reserve, .init_irq = omap1_init_irq, .init_machine = h2_init, + .init_late = omap1_init_late, .timer = &omap1_timer, .restart = omap1_restart,MACHINE_END
arch/arm/mach-omap1/board-h3.c +1 -0
@@ -439,6 +439,7 @@ MACHINE_START(OMAP_H3, "TI OMAP1710 H3 board") .reserve = omap_reserve, .init_irq = omap1_init_irq, .init_machine = h3_init, + .init_late = omap1_init_late, .timer = &omap1_timer, .restart = omap1_restart,MACHINE_END
arch/arm/mach-omap1/board-htcherald.c +1 -0
@@ -605,6 +605,7 @@ MACHINE_START(HERALD, "HTC Herald") .reserve = omap_reserve, .init_irq = omap1_init_irq, .init_machine = htcherald_init, + .init_late = omap1_init_late, .timer = &omap1_timer, .restart = omap1_restart,MACHINE_END
arch/arm/mach-omap1/board-innovator.c +1 -0
@@ -457,6 +457,7 @@ MACHINE_START(OMAP_INNOVATOR, "TI-Innovator") .reserve = omap_reserve, .init_irq = omap1_init_irq, .init_machine = innovator_init, + .init_late = omap1_init_late, .timer = &omap1_timer, .restart = omap1_restart,MACHINE_END
arch/arm/mach-omap1/board-nokia770.c +1 -0
@@ -255,6 +255,7 @@ MACHINE_START(NOKIA770, "Nokia 770") .reserve = omap_reserve, .init_irq = omap1_init_irq, .init_machine = omap_nokia770_init, + .init_late = omap1_init_late, .timer = &omap1_timer, .restart = omap1_restart,MACHINE_END
arch/arm/mach-omap1/board-osk.c +1 -0
@@ -574,6 +574,7 @@ MACHINE_START(OMAP_OSK, "TI-OSK") .reserve = omap_reserve, .init_irq = omap1_init_irq, .init_machine = osk_init, + .init_late = omap1_init_late, .timer = &omap1_timer, .restart = omap1_restart,MACHINE_END
arch/arm/mach-omap1/board-palmte.c +1 -0
@@ -267,6 +267,7 @@ MACHINE_START(OMAP_PALMTE, "OMAP310 based Palm Tungsten E") .reserve = omap_reserve, .init_irq = omap1_init_irq, .init_machine = omap_palmte_init, + .init_late = omap1_init_late, .timer = &omap1_timer, .restart = omap1_restart,MACHINE_END
arch/arm/mach-omap1/board-palmtt.c +1 -0
@@ -313,6 +313,7 @@ MACHINE_START(OMAP_PALMTT, "OMAP1510 based Palm Tungsten|T") .reserve = omap_reserve, .init_irq = omap1_init_irq, .init_machine = omap_palmtt_init, + .init_late = omap1_init_late, .timer = &omap1_timer, .restart = omap1_restart,MACHINE_END
arch/arm/mach-omap1/board-palmz71.c +1 -0
@@ -330,6 +330,7 @@ MACHINE_START(OMAP_PALMZ71, "OMAP310 based Palm Zire71") .reserve = omap_reserve, .init_irq = omap1_init_irq, .init_machine = omap_palmz71_init, + .init_late = omap1_init_late, .timer = &omap1_timer, .restart = omap1_restart,MACHINE_END
arch/arm/mach-omap1/board-perseus2.c +1 -0
@@ -345,6 +345,7 @@ MACHINE_START(OMAP_PERSEUS2, "OMAP730 Perseus2") .reserve = omap_reserve, .init_irq = omap1_init_irq, .init_machine = omap_perseus2_init, + .init_late = omap1_init_late, .timer = &omap1_timer, .restart = omap1_restart,MACHINE_END
arch/arm/mach-omap1/board-sx1.c +1 -0
@@ -407,6 +407,7 @@ MACHINE_START(SX1, "OMAP310 based Siemens SX1") .reserve = omap_reserve, .init_irq = omap1_init_irq, .init_machine = omap_sx1_init, + .init_late = omap1_init_late, .timer = &omap1_timer, .restart = omap1_restart,MACHINE_END
arch/arm/mach-omap1/board-voiceblue.c +1 -0
@@ -294,6 +294,7 @@ MACHINE_START(VOICEBLUE, "VoiceBlue OMAP5910") .reserve = omap_reserve, .init_irq = omap1_init_irq, .init_machine = voiceblue_init, + .init_late = omap1_init_late, .timer = &omap1_timer, .restart = voiceblue_restart,MACHINE_END
arch/arm/mach-omap1/common.h +10 -0
@@ -52,8 +52,18 @@ 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 struct sys_timer omap1_timer;
arch/arm/mach-omap1/io.c +5 -0
@@ -138,6 +138,11 @@ void __init omap1_init_early(void)omap_init_consistent_dma_size (); } +void __init omap1_init_late (void ) +{ +omap_serial_wakeup_init (); +} +/* * NOTE: Please use ioremap + __raw_read/write where possible instead of these */
arch/arm/mach-omap1/serial.c +1 -2
@@ -237,7 +237,7 @@ static void __init omap_serial_set_port_wakeup(int gpio_nr)enable_irq_wake (gpio_to_irq (gpio_nr)); } -static int __init omap_serial_wakeup_init (void ) +int __init omap_serial_wakeup_init (void ) {if (!cpu_is_omap16xx ())return 0 ;
@@ -251,7 +251,6 @@ static int __init omap_serial_wakeup_init(void) return 0; } -late_initcall (omap_serial_wakeup_init);#endif /* CONFIG_OMAP_SERIAL_WAKE */
Signature · 1 line
1.7.5.4
PATCH 8/15 ARM: omap2: use machine specific hook for late init
In reply to Shawn Guo--- arch/arm/mach-omap2/board-2430sdp.c | 1 + arch/arm/mach-omap2/board-3430sdp.c | 1 + arch/arm/mach-omap2/board-3630sdp.c | 1 + arch/arm/mach-omap2/board-4430sdp.c | 1 + arch/arm/mach-omap2/board-am3517crane.c | 1 + arch/arm/mach-omap2/board-am3517evm.c | 1 + arch/arm/mach-omap2/board-apollon.c | 1 + arch/arm/mach-omap2/board-cm-t35.c | 2 + arch/arm/mach-omap2/board-cm-t3517.c | 1 + arch/arm/mach-omap2/board-devkit8000.c | 1 + arch/arm/mach-omap2/board-generic.c | 1 + arch/arm/mach-omap2/board-h4.c | 1 + arch/arm/mach-omap2/board-igep0020.c | 2 + arch/arm/mach-omap2/board-ldp.c | 1 + arch/arm/mach-omap2/board-n8x0.c | 3 + arch/arm/mach-omap2/board-omap3beagle.c | 1 + arch/arm/mach-omap2/board-omap3evm.c | 1 + arch/arm/mach-omap2/board-omap3logic.c | 2 + arch/arm/mach-omap2/board-omap3pandora.c | 1 + arch/arm/mach-omap2/board-omap3stalker.c | 1 + arch/arm/mach-omap2/board-omap3touchbook.c | 1 + arch/arm/mach-omap2/board-omap4panda.c | 1 + arch/arm/mach-omap2/board-overo.c | 1 + arch/arm/mach-omap2/board-rm680.c | 2 + arch/arm/mach-omap2/board-rx51.c | 1 + arch/arm/mach-omap2/board-ti8168evm.c | 2 + arch/arm/mach-omap2/board-zoom.c | 2 + arch/arm/mach-omap2/common.h | 47 +++++++++++++++++++++ arch/arm/mach-omap2/io.c | 63 ++++++++++++++++++++++++++++ arch/arm/mach-omap2/mux.c | 3 +- arch/arm/mach-omap2/pm.c | 3 +- arch/arm/mach-omap2/pm24xx.c | 17 ++----- arch/arm/mach-omap2/pm34xx.c | 7 +--- arch/arm/mach-omap2/pm44xx.c | 6 +-- 34 files changed, 154 insertions(+), 27 deletions(-)
arch/arm/mach-omap2/board-2430sdp.c +1 -0
@@ -303,6 +303,7 @@ MACHINE_START(OMAP_2430SDP, "OMAP2430 sdp2430 board") .init_irq = omap2_init_irq, .handle_irq = omap2_intc_handle_irq, .init_machine = omap_2430sdp_init, + .init_late = omap2430_init_late, .timer = &omap2_timer, .restart = omap_prcm_restart,MACHINE_END
arch/arm/mach-omap2/board-3430sdp.c +1 -0
@@ -635,6 +635,7 @@ MACHINE_START(OMAP_3430SDP, "OMAP3430 3430SDP board") .init_irq = omap3_init_irq, .handle_irq = omap3_intc_handle_irq, .init_machine = omap_3430sdp_init, + .init_late = omap3430_init_late, .timer = &omap3_timer, .restart = omap_prcm_restart,MACHINE_END
arch/arm/mach-omap2/board-3630sdp.c +1 -0
@@ -217,6 +217,7 @@ MACHINE_START(OMAP_3630SDP, "OMAP 3630SDP board") .init_irq = omap3_init_irq, .handle_irq = omap3_intc_handle_irq, .init_machine = omap_sdp_init, + .init_late = omap3630_init_late, .timer = &omap3_timer, .restart = omap_prcm_restart,MACHINE_END
arch/arm/mach-omap2/board-4430sdp.c +1 -0
@@ -969,6 +969,7 @@ MACHINE_START(OMAP_4430SDP, "OMAP4430 4430SDP board") .init_irq = gic_init_irq, .handle_irq = gic_handle_irq, .init_machine = omap_4430sdp_init, + .init_late = omap4430_init_late, .timer = &omap4_timer, .restart = omap_prcm_restart,MACHINE_END
arch/arm/mach-omap2/board-am3517crane.c +1 -0
@@ -100,6 +100,7 @@ MACHINE_START(CRANEBOARD, "AM3517/05 CRANEBOARD") .init_irq = omap3_init_irq, .handle_irq = omap3_intc_handle_irq, .init_machine = am3517_crane_init, + .init_late = am35xx_init_late, .timer = &omap3_timer, .restart = omap_prcm_restart,MACHINE_END
arch/arm/mach-omap2/board-am3517evm.c +1 -0
@@ -402,6 +402,7 @@ MACHINE_START(OMAP3517EVM, "OMAP3517/AM3517 EVM") .init_irq = omap3_init_irq, .handle_irq = omap3_intc_handle_irq, .init_machine = am3517_evm_init, + .init_late = am35xx_init_late, .timer = &omap3_timer, .restart = omap_prcm_restart,MACHINE_END
arch/arm/mach-omap2/board-apollon.c +1 -0
@@ -356,6 +356,7 @@ MACHINE_START(OMAP_APOLLON, "OMAP24xx Apollon") .init_irq = omap2_init_irq, .handle_irq = omap2_intc_handle_irq, .init_machine = omap_apollon_init, + .init_late = omap2420_init_late, .timer = &omap2_timer, .restart = omap_prcm_restart,MACHINE_END
arch/arm/mach-omap2/board-cm-t35.c +2 -0
@@ -686,6 +686,7 @@ MACHINE_START(CM_T35, "Compulab CM-T35") .init_irq = omap3_init_irq, .handle_irq = omap3_intc_handle_irq, .init_machine = cm_t35_init, + .init_late = omap35xx_init_late, .timer = &omap3_timer, .restart = omap_prcm_restart,MACHINE_END
@@ -698,6 +699,7 @@ MACHINE_START(CM_T3730, "Compulab CM-T3730") .init_irq = omap3_init_irq, .handle_irq = omap3_intc_handle_irq, .init_machine = cm_t3730_init, + .init_late = omap3630_init_late, .timer = &omap3_timer, .restart = omap_prcm_restart,MACHINE_END
arch/arm/mach-omap2/board-cm-t3517.c +1 -0
@@ -303,6 +303,7 @@ MACHINE_START(CM_T3517, "Compulab CM-T3517") .init_irq = omap3_init_irq, .handle_irq = omap3_intc_handle_irq, .init_machine = cm_t3517_init, + .init_late = am35xx_init_late, .timer = &omap3_timer, .restart = omap_prcm_restart,MACHINE_END
arch/arm/mach-omap2/board-devkit8000.c +1 -0
@@ -664,6 +664,7 @@ MACHINE_START(DEVKIT8000, "OMAP3 Devkit8000") .init_irq = omap3_init_irq, .handle_irq = omap3_intc_handle_irq, .init_machine = devkit8000_init, + .init_late = omap35xx_init_late, .timer = &omap3_secure_timer, .restart = omap_prcm_restart,MACHINE_END
arch/arm/mach-omap2/board-generic.c +1 -0
@@ -158,6 +158,7 @@ DT_MACHINE_START(OMAP4_DT, "Generic OMAP4 (Flattened Device Tree)") .init_irq = omap_init_irq, .handle_irq = gic_handle_irq, .init_machine = omap4_init, + .init_late = omap4430_init_late, .timer = &omap4_timer, .dt_compat = omap4_boards_compat, .restart = omap_prcm_restart,
arch/arm/mach-omap2/board-h4.c +1 -0
@@ -398,6 +398,7 @@ MACHINE_START(OMAP_H4, "OMAP2420 H4 board") .init_irq = omap2_init_irq, .handle_irq = omap2_intc_handle_irq, .init_machine = omap_h4_init, + .init_late = omap2420_init_late, .timer = &omap2_timer, .restart = omap_prcm_restart,MACHINE_END
arch/arm/mach-omap2/board-igep0020.c +2 -0
@@ -684,6 +684,7 @@ MACHINE_START(IGEP0020, "IGEP v2 board") .init_irq = omap3_init_irq, .handle_irq = omap3_intc_handle_irq, .init_machine = igep_init, + .init_late = omap35xx_init_late, .timer = &omap3_timer, .restart = omap_prcm_restart,MACHINE_END
@@ -696,6 +697,7 @@ MACHINE_START(IGEP0030, "IGEP OMAP3 module") .init_irq = omap3_init_irq, .handle_irq = omap3_intc_handle_irq, .init_machine = igep_init, + .init_late = omap35xx_init_late, .timer = &omap3_timer, .restart = omap_prcm_restart,MACHINE_END
arch/arm/mach-omap2/board-ldp.c +1 -0
@@ -442,6 +442,7 @@ MACHINE_START(OMAP_LDP, "OMAP LDP board") .init_irq = omap3_init_irq, .handle_irq = omap3_intc_handle_irq, .init_machine = omap_ldp_init, + .init_late = omap3430_init_late, .timer = &omap3_timer, .restart = omap_prcm_restart,MACHINE_END
arch/arm/mach-omap2/board-n8x0.c +3 -0
@@ -694,6 +694,7 @@ MACHINE_START(NOKIA_N800, "Nokia N800") .init_irq = omap2_init_irq, .handle_irq = omap2_intc_handle_irq, .init_machine = n8x0_init_machine, + .init_late = omap2420_init_late, .timer = &omap2_timer, .restart = omap_prcm_restart,MACHINE_END
@@ -706,6 +707,7 @@ MACHINE_START(NOKIA_N810, "Nokia N810") .init_irq = omap2_init_irq, .handle_irq = omap2_intc_handle_irq, .init_machine = n8x0_init_machine, + .init_late = omap2420_init_late, .timer = &omap2_timer, .restart = omap_prcm_restart,MACHINE_END
@@ -718,6 +720,7 @@ MACHINE_START(NOKIA_N810_WIMAX, "Nokia N810 WiMAX") .init_irq = omap2_init_irq, .handle_irq = omap2_intc_handle_irq, .init_machine = n8x0_init_machine, + .init_late = omap2420_init_late, .timer = &omap2_timer, .restart = omap_prcm_restart,MACHINE_END
arch/arm/mach-omap2/board-omap3beagle.c +1 -0
@@ -565,6 +565,7 @@ MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board") .init_irq = omap3_init_irq, .handle_irq = omap3_intc_handle_irq, .init_machine = omap3_beagle_init, + .init_late = omap3_init_late, .timer = &omap3_secure_timer, .restart = omap_prcm_restart,MACHINE_END
arch/arm/mach-omap2/board-omap3evm.c +1 -0
@@ -692,6 +692,7 @@ MACHINE_START(OMAP3EVM, "OMAP3 EVM") .init_irq = omap3_init_irq, .handle_irq = omap3_intc_handle_irq, .init_machine = omap3_evm_init, + .init_late = omap35xx_init_late, .timer = &omap3_timer, .restart = omap_prcm_restart,MACHINE_END
arch/arm/mach-omap2/board-omap3logic.c +2 -0
@@ -218,6 +218,7 @@ MACHINE_START(OMAP3_TORPEDO, "Logic OMAP3 Torpedo board") .init_irq = omap3_init_irq, .handle_irq = omap3_intc_handle_irq, .init_machine = omap3logic_init, + .init_late = omap35xx_init_late, .timer = &omap3_timer, .restart = omap_prcm_restart,MACHINE_END
@@ -230,6 +231,7 @@ MACHINE_START(OMAP3530_LV_SOM, "OMAP Logic 3530 LV SOM board") .init_irq = omap3_init_irq, .handle_irq = omap3_intc_handle_irq, .init_machine = omap3logic_init, + .init_late = omap35xx_init_late, .timer = &omap3_timer, .restart = omap_prcm_restart,MACHINE_END
arch/arm/mach-omap2/board-omap3pandora.c +1 -0
@@ -622,6 +622,7 @@ MACHINE_START(OMAP3_PANDORA, "Pandora Handheld Console") .init_irq = omap3_init_irq, .handle_irq = omap3_intc_handle_irq, .init_machine = omap3pandora_init, + .init_late = omap35xx_init_late, .timer = &omap3_timer, .restart = omap_prcm_restart,MACHINE_END
arch/arm/mach-omap2/board-omap3stalker.c +1 -0
@@ -457,6 +457,7 @@ MACHINE_START(SBC3530, "OMAP3 STALKER") .init_irq = omap3_init_irq, .handle_irq = omap3_intc_handle_irq, .init_machine = omap3_stalker_init, + .init_late = omap35xx_init_late, .timer = &omap3_secure_timer, .restart = omap_prcm_restart,MACHINE_END
arch/arm/mach-omap2/board-omap3touchbook.c +1 -0
@@ -387,6 +387,7 @@ MACHINE_START(TOUCHBOOK, "OMAP3 touchbook Board") .init_irq = omap3_init_irq, .handle_irq = omap3_intc_handle_irq, .init_machine = omap3_touchbook_init, + .init_late = omap3430_init_late, .timer = &omap3_secure_timer, .restart = omap_prcm_restart,MACHINE_END
arch/arm/mach-omap2/board-omap4panda.c +1 -0
@@ -582,6 +582,7 @@ MACHINE_START(OMAP4_PANDA, "OMAP4 Panda board") .init_irq = gic_init_irq, .handle_irq = gic_handle_irq, .init_machine = omap4_panda_init, + .init_late = omap4430_init_late, .timer = &omap4_timer, .restart = omap_prcm_restart,MACHINE_END
arch/arm/mach-omap2/board-overo.c +1 -0
@@ -571,6 +571,7 @@ MACHINE_START(OVERO, "Gumstix Overo") .init_irq = omap3_init_irq, .handle_irq = omap3_intc_handle_irq, .init_machine = overo_init, + .init_late = omap35xx_init_late, .timer = &omap3_timer, .restart = omap_prcm_restart,MACHINE_END
arch/arm/mach-omap2/board-rm680.c +2 -0
@@ -151,6 +151,7 @@ MACHINE_START(NOKIA_RM680, "Nokia RM-680 board") .init_irq = omap3_init_irq, .handle_irq = omap3_intc_handle_irq, .init_machine = rm680_init, + .init_late = omap3630_init_late, .timer = &omap3_timer, .restart = omap_prcm_restart,MACHINE_END
@@ -163,6 +164,7 @@ MACHINE_START(NOKIA_RM696, "Nokia RM-696 board") .init_irq = omap3_init_irq, .handle_irq = omap3_intc_handle_irq, .init_machine = rm680_init, + .init_late = omap3630_init_late, .timer = &omap3_timer, .restart = omap_prcm_restart,MACHINE_END
arch/arm/mach-omap2/board-rx51.c +1 -0
@@ -129,6 +129,7 @@ MACHINE_START(NOKIA_RX51, "Nokia RX-51 board") .init_irq = omap3_init_irq, .handle_irq = omap3_intc_handle_irq, .init_machine = rx51_init, + .init_late = omap3430_init_late, .timer = &omap3_timer, .restart = omap_prcm_restart,MACHINE_END
arch/arm/mach-omap2/board-ti8168evm.c +2 -0
@@ -52,6 +52,7 @@ MACHINE_START(TI8168EVM, "ti8168evm") .init_irq = ti81xx_init_irq, .timer = &omap3_timer, .init_machine = ti81xx_evm_init, + .init_late = ti81xx_init_late, .restart = omap_prcm_restart,MACHINE_END
@@ -63,5 +64,6 @@ MACHINE_START(TI8148EVM, "ti8148evm") .init_irq = ti81xx_init_irq, .timer = &omap3_timer, .init_machine = ti81xx_evm_init, + .init_late = ti81xx_init_late, .restart = omap_prcm_restart,MACHINE_END
arch/arm/mach-omap2/board-zoom.c +2 -0
@@ -137,6 +137,7 @@ MACHINE_START(OMAP_ZOOM2, "OMAP Zoom2 board") .init_irq = omap3_init_irq, .handle_irq = omap3_intc_handle_irq, .init_machine = omap_zoom_init, + .init_late = omap3430_init_late, .timer = &omap3_timer, .restart = omap_prcm_restart,MACHINE_END
@@ -149,6 +150,7 @@ MACHINE_START(OMAP_ZOOM3, "OMAP Zoom3 board") .init_irq = omap3_init_irq, .handle_irq = omap3_intc_handle_irq, .init_machine = omap_zoom_init, + .init_late = omap3630_init_late, .timer = &omap3_timer, .restart = omap_prcm_restart,MACHINE_END
arch/arm/mach-omap2/common.h +47 -0
59 lines not on this page · raw message
arch/arm/mach-omap2/io.c +63 -0
87 lines not on this page · raw message
arch/arm/mach-omap2/mux.c +1 -2
@@ -788,7 +788,7 @@ static void __init omap_mux_free_names(struct omap_mux *m) }/* Free all data except for GPIO pins unless CONFIG_DEBUG_FS is set */ -static int __init omap_mux_late_init (void ) +int __init omap_mux_late_init (void ) {struct omap_mux_partition *partition;int ret;
@@ -823,7 +823,6 @@ static int __init omap_mux_late_init(void)return 0 ; } -late_initcall (omap_mux_late_init);static void __init omap_mux_package_fixup (struct omap_mux *p,struct omap_mux *superset)
arch/arm/mach-omap2/pm.c +1 -2
@@ -295,7 +295,7 @@ static int __init omap2_common_pm_init(void) }postcore_initcall (omap2_common_pm_init); -static int __init omap2_common_pm_late_init (void ) +int __init omap2_common_pm_late_init (void ) {/* * In the case of DT, the PMIC and SR initialization will be done using
@@ -322,4 +322,3 @@ static int __init omap2_common_pm_late_init(void)return 0 ; } -late_initcall (omap2_common_pm_late_init);
arch/arm/mach-omap2/pm24xx.c +5 -12
@@ -301,13 +301,10 @@ static void __init prcm_setup_regs(void) WKUP_MOD, PM_WKEN); } -static int __init omap2_pm_init (void ) +int __init omap2_pm_init (void ) {u32 l; -if (!cpu_is_omap24xx ()) -return -ENODEV ; -printk (KERN_INFO "Power Management for OMAP2 initializing\n" ); l =omap2_prm_read_mod_reg (OCP_MOD ,OMAP2_PRCM_REVISION_OFFSET );printk (KERN_INFO "PRCM revision %d.%d\n" , (l >>4 ) &0x0f , l &0x0f );
@@ -373,17 +370,13 @@ static int __init omap2_pm_init(void)* These routines need to be in SRAM as that's the only * memory the MPU can see when it wakes up. */ -if (cpu_is_omap24xx ()) { - omap2_sram_idle =omap_sram_push (omap24xx_idle_loop_suspend, - omap24xx_idle_loop_suspend_sz); + omap2_sram_idle =omap_sram_push (omap24xx_idle_loop_suspend, + omap24xx_idle_loop_suspend_sz); - omap2_sram_suspend =omap_sram_push (omap24xx_cpu_suspend, - omap24xx_cpu_suspend_sz); - } + omap2_sram_suspend =omap_sram_push (omap24xx_cpu_suspend, + omap24xx_cpu_suspend_sz); arm_pm_idle = omap2_pm_idle;return 0 ; } - -late_initcall (omap2_pm_init);
arch/arm/mach-omap2/pm34xx.c +1 -6
@@ -699,15 +699,12 @@ static void __init pm_errata_configure(void) } } -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;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" );
@@ -808,5 +805,3 @@ err2: err1:return ret; } - -late_initcall (omap3_pm_init);
arch/arm/mach-omap2/pm44xx.c +1 -5
@@ -141,15 +141,12 @@ static void omap_default_idle(void)* Initializes all powerdomain and clockdomain target states * and all PRCM settings. */ -static int __init omap4_pm_init (void ) +int __init omap4_pm_init (void ) {int ret;struct clockdomain *emif_clkdm, *mpuss_clkdm, *l3_1_clkdm, *l4wkup;struct clockdomain *ducati_clkdm, *l3_2_clkdm, *l4_per_clkdm; -if (!cpu_is_omap44xx ()) -return -ENODEV ; -if (omap_rev () ==OMAP4430_REV_ES1_0 ) {WARN (1 ,"Power Management not supported on OMAP4430 ES1.0\n" );return -ENODEV ;
@@ -217,4 +214,3 @@ static int __init omap4_pm_init(void) err2:return ret; } -late_initcall (omap4_pm_init);
Signature · 1 line
1.7.5.4
PATCH 9/15 ARM: pnx4008: use machine specific hook for late init
In reply to Shawn Guo--- arch/arm/mach-pnx4008/core.c | 12 ++++++++++++ arch/arm/mach-pnx4008/pm.c | 4 +--- 2 files changed, 13 insertions(+), 3 deletions(-)
arch/arm/mach-pnx4008/core.c +12 -0
@@ -265,6 +265,17 @@ static void pnx4008_restart(char mode, const char *cmd)soft_restart (0 ); } +#ifdef CONFIG_PM +extern int pnx4008_pm_init (void ); +#else +static inline int pnx4008_pm_init (void ) {return 0 ; } +#endif + +void __init pnx4008_init_late (void ) +{ +pnx4008_pm_init (); +} +extern struct sys_timer pnx4008_timer;MACHINE_START (PNX4008 ,"Philips PNX4008" )
@@ -273,6 +284,7 @@ MACHINE_START(PNX4008, "Philips PNX4008") .map_io = pnx4008_map_io, .init_irq = pnx4008_init_irq, .init_machine = pnx4008_init, + .init_late = pnx4008_init_late, .timer = &pnx4008_timer, .restart = pnx4008_restart,MACHINE_END
arch/arm/mach-pnx4008/pm.c +1 -3
@@ -124,7 +124,7 @@ static const struct platform_suspend_ops pnx4008_pm_ops = { .valid = pnx4008_pm_valid, }; -static int __init pnx4008_pm_init (void ) +int __init pnx4008_pm_init (void ) {u32 sram_size_to_allocate;
@@ -151,5 +151,3 @@ static int __init pnx4008_pm_init(void)suspend_set_ops (&pnx4008_pm_ops);return 0 ; } - -late_initcall (pnx4008_pm_init);
Signature · 1 line
1.7.5.4
PATCH 10/15 ARM: prima2: use machine specific hook for late init
In reply to Shawn Guo--- arch/arm/mach-prima2/common.h | 6 ++++++ arch/arm/mach-prima2/pm.c | 3 +-- arch/arm/mach-prima2/prima2.c | 6 ++++++ 3 files changed, 13 insertions(+), 2 deletions(-)
arch/arm/mach-prima2/common.h +6 -0
@@ -24,4 +24,10 @@ static inline void sirfsoc_map_lluart(void) {}extern void __init sirfsoc_map_lluart (void );#endif +#ifdef CONFIG_SUSPEND +extern int sirfsoc_pm_init (void ); +#else +static inline int sirfsoc_pm_init (void ) {return 0 ; } +#endif +#endif
arch/arm/mach-prima2/pm.c +1 -2
@@ -85,12 +85,11 @@ static const struct platform_suspend_ops sirfsoc_pm_ops = { .valid = suspend_valid_only_mem, }; -static int __init sirfsoc_pm_init (void ) +int __init sirfsoc_pm_init (void ) {suspend_set_ops (&sirfsoc_pm_ops);return 0 ; } -late_initcall (sirfsoc_pm_init);static const struct of_device_id pwrc_ids[] = { { .compatible ="sirf,prima2-pwrc" },
arch/arm/mach-prima2/prima2.c +6 -0
@@ -25,6 +25,11 @@ void __init sirfsoc_mach_init(void)of_platform_bus_probe (NULL , sirfsoc_of_bus_ids,NULL ); } +void __init sirfsoc_init_late (void ) +{ +sirfsoc_pm_init (); +} +static const char *prima2cb_dt_match[]__initdata = {"sirf,prima2-cb" ,NULL
@@ -39,6 +44,7 @@ MACHINE_START(PRIMA2_EVB, "prima2cb") .timer = &sirfsoc_timer, .dma_zone_size = SZ_256M, .init_machine = sirfsoc_mach_init, + .init_late = sirfsoc_init_late, .dt_compat = prima2cb_dt_match, .restart = sirfsoc_restart,MACHINE_END
Signature · 1 line
1.7.5.4
PATCH 11/15 ARM: s3c64xx: use machine specific hook for late init
In reply to Shawn Guo--- arch/arm/mach-s3c64xx/common.c | 5 +++++ arch/arm/mach-s3c64xx/common.h | 7 +++++++ arch/arm/mach-s3c64xx/mach-anw6410.c | 1 + arch/arm/mach-s3c64xx/mach-crag6410.c | 1 + arch/arm/mach-s3c64xx/mach-hmt.c | 1 + arch/arm/mach-s3c64xx/mach-mini6410.c | 1 + arch/arm/mach-s3c64xx/mach-ncp.c | 1 + arch/arm/mach-s3c64xx/mach-real6410.c | 1 + arch/arm/mach-s3c64xx/mach-smartq5.c | 1 + arch/arm/mach-s3c64xx/mach-smartq7.c | 1 + arch/arm/mach-s3c64xx/mach-smdk6400.c | 1 + arch/arm/mach-s3c64xx/mach-smdk6410.c | 1 + arch/arm/mach-s3c64xx/pm.c | 3 +-- 13 files changed, 23 insertions(+), 2 deletions(-)
arch/arm/mach-s3c64xx/common.c +5 -0
@@ -384,3 +384,8 @@ void s3c64xx_restart(char mode, const char *cmd)/* if all else fails, or mode was for soft, jump to 0 */ soft_restart (0 ); } + +void __init s3c64xx_init_late (void ) +{ +s3c64xx_pm_late_initcall (); +}
arch/arm/mach-s3c64xx/common.h +7 -0
@@ -24,6 +24,7 @@ void s3c64xx_register_clocks(unsigned long xtal, unsigned armclk_limit);void s3c64xx_setup_clocks (void );void s3c64xx_restart (char mode,const char *cmd); +void s3c64xx_init_late (void );#ifdef CONFIG_CPU_S3C6400
@@ -51,4 +52,10 @@ extern void s3c6410_init_clocks(int xtal);#define s3c6410_init NULL#endif +#ifdef CONFIG_PM +int __init s3c64xx_pm_late_initcall (void ); +#else +static inline int s3c64xx_pm_late_initcall (void ) {return 0 ; } +#endif +#endif /* __ARCH_ARM_MACH_S3C64XX_COMMON_H */
arch/arm/mach-s3c64xx/mach-anw6410.c +1 -0
@@ -241,6 +241,7 @@ MACHINE_START(ANW6410, "A&W6410") .handle_irq = vic_handle_irq, .map_io = anw6410_map_io, .init_machine = anw6410_machine_init, + .init_late = s3c64xx_init_late, .timer = &s3c24xx_timer, .restart = s3c64xx_restart,MACHINE_END
arch/arm/mach-s3c64xx/mach-crag6410.c +1 -0
@@ -811,6 +811,7 @@ MACHINE_START(WLF_CRAGG_6410, "Wolfson Cragganmore 6410") .handle_irq = vic_handle_irq, .map_io = crag6410_map_io, .init_machine = crag6410_machine_init, + .init_late = s3c64xx_init_late, .timer = &s3c24xx_timer, .restart = s3c64xx_restart,MACHINE_END
arch/arm/mach-s3c64xx/mach-hmt.c +1 -0
@@ -272,6 +272,7 @@ MACHINE_START(HMT, "Airgoo-HMT") .handle_irq = vic_handle_irq, .map_io = hmt_map_io, .init_machine = hmt_machine_init, + .init_late = s3c64xx_init_late, .timer = &s3c24xx_timer, .restart = s3c64xx_restart,MACHINE_END
arch/arm/mach-s3c64xx/mach-mini6410.c +1 -0
@@ -350,6 +350,7 @@ MACHINE_START(MINI6410, "MINI6410") .handle_irq = vic_handle_irq, .map_io = mini6410_map_io, .init_machine = mini6410_machine_init, + .init_late = s3c64xx_init_late, .timer = &s3c24xx_timer, .restart = s3c64xx_restart,MACHINE_END
arch/arm/mach-s3c64xx/mach-ncp.c +1 -0
@@ -104,6 +104,7 @@ MACHINE_START(NCP, "NCP") .handle_irq = vic_handle_irq, .map_io = ncp_map_io, .init_machine = ncp_machine_init, + .init_late = s3c64xx_init_late, .timer = &s3c24xx_timer, .restart = s3c64xx_restart,MACHINE_END
arch/arm/mach-s3c64xx/mach-real6410.c +1 -0
@@ -331,6 +331,7 @@ MACHINE_START(REAL6410, "REAL6410") .handle_irq = vic_handle_irq, .map_io = real6410_map_io, .init_machine = real6410_machine_init, + .init_late = s3c64xx_init_late, .timer = &s3c24xx_timer, .restart = s3c64xx_restart,MACHINE_END
arch/arm/mach-s3c64xx/mach-smartq5.c +1 -0
@@ -152,6 +152,7 @@ MACHINE_START(SMARTQ5, "SmartQ 5") .handle_irq = vic_handle_irq, .map_io = smartq_map_io, .init_machine = smartq5_machine_init, + .init_late = s3c64xx_init_late, .timer = &s3c24xx_timer, .restart = s3c64xx_restart,MACHINE_END
arch/arm/mach-s3c64xx/mach-smartq7.c +1 -0
@@ -168,6 +168,7 @@ MACHINE_START(SMARTQ7, "SmartQ 7") .handle_irq = vic_handle_irq, .map_io = smartq_map_io, .init_machine = smartq7_machine_init, + .init_late = s3c64xx_init_late, .timer = &s3c24xx_timer, .restart = s3c64xx_restart,MACHINE_END
arch/arm/mach-s3c64xx/mach-smdk6400.c +1 -0
@@ -93,6 +93,7 @@ MACHINE_START(SMDK6400, "SMDK6400") .handle_irq = vic_handle_irq, .map_io = smdk6400_map_io, .init_machine = smdk6400_machine_init, + .init_late = s3c64xx_init_late, .timer = &s3c24xx_timer, .restart = s3c64xx_restart,MACHINE_END
arch/arm/mach-s3c64xx/mach-smdk6410.c +1 -0
@@ -709,6 +709,7 @@ MACHINE_START(SMDK6410, "SMDK6410") .handle_irq = vic_handle_irq, .map_io = smdk6410_map_io, .init_machine = smdk6410_machine_init, + .init_late = s3c64xx_init_late, .timer = &s3c24xx_timer, .restart = s3c64xx_restart,MACHINE_END
arch/arm/mach-s3c64xx/pm.c +1 -2
@@ -365,10 +365,9 @@ static __init int s3c64xx_pm_initcall(void) }arch_initcall (s3c64xx_pm_initcall); -static __init int s3c64xx_pm_late_initcall (void ) +int __init s3c64xx_pm_late_initcall (void ) {pm_genpd_poweroff_unused ();return 0 ; } -late_initcall (s3c64xx_pm_late_initcall);
Signature · 1 line
1.7.5.4
PATCH 12/15 ARM: sa1100: use machine specific hook for late init
In reply to Shawn Guo--- arch/arm/mach-sa1100/assabet.c | 1 + arch/arm/mach-sa1100/badge4.c | 1 + arch/arm/mach-sa1100/cerf.c | 1 + arch/arm/mach-sa1100/collie.c | 1 + arch/arm/mach-sa1100/generic.c | 4 ++++ arch/arm/mach-sa1100/generic.h | 7 +++++++ arch/arm/mach-sa1100/h3100.c | 1 + arch/arm/mach-sa1100/h3600.c | 1 + arch/arm/mach-sa1100/hackkit.c | 1 + arch/arm/mach-sa1100/jornada720.c | 1 + arch/arm/mach-sa1100/lart.c | 1 + arch/arm/mach-sa1100/nanoengine.c | 1 + arch/arm/mach-sa1100/pleb.c | 1 + arch/arm/mach-sa1100/pm.c | 4 +--- arch/arm/mach-sa1100/shannon.c | 1 + arch/arm/mach-sa1100/simpad.c | 1 + 16 files changed, 25 insertions(+), 3 deletions(-)
arch/arm/mach-sa1100/assabet.c +1 -0
@@ -538,6 +538,7 @@ MACHINE_START(ASSABET, "Intel-Assabet") .init_irq = sa1100_init_irq, .timer = &sa1100_timer, .init_machine = assabet_init, + .init_late = sa11x0_init_late,#ifdef CONFIG_SA1111 .dma_zone_size = SZ_1M,#endif
arch/arm/mach-sa1100/badge4.c +1 -0
@@ -305,6 +305,7 @@ MACHINE_START(BADGE4, "Hewlett-Packard Laboratories BadgePAD 4") .map_io = badge4_map_io, .nr_irqs = SA1100_NR_IRQS, .init_irq = sa1100_init_irq, + .init_late = sa11x0_init_late, .timer = &sa1100_timer, #ifdef CONFIG_SA1111 .dma_zone_size = SZ_1M,
arch/arm/mach-sa1100/cerf.c +1 -0
@@ -134,5 +134,6 @@ MACHINE_START(CERF, "Intrinsyc CerfBoard/CerfCube") .init_irq = cerf_init_irq, .timer = &sa1100_timer, .init_machine = cerf_init, + .init_late = sa11x0_init_late, .restart = sa11x0_restart,MACHINE_END
arch/arm/mach-sa1100/collie.c +1 -0
@@ -401,5 +401,6 @@ MACHINE_START(COLLIE, "Sharp-Collie") .init_irq = sa1100_init_irq, .timer = &sa1100_timer, .init_machine = collie_init, + .init_late = sa11x0_init_late, .restart = sa11x0_restart,MACHINE_END
arch/arm/mach-sa1100/generic.c +4 -0
@@ -359,6 +359,10 @@ static int __init sa1100_init(void)arch_initcall (sa1100_init); +void __init sa11x0_init_late (void ) +{ +sa11x0_pm_init (); +}/* * Common I/O mapping:
arch/arm/mach-sa1100/generic.h +7 -0
@@ -11,6 +11,7 @@ extern void __init sa1100_map_io(void);extern void __init sa1100_init_irq (void );extern void __init sa1100_init_gpio (void );extern void sa11x0_restart (char ,const char *); +extern void sa11x0_init_late (void );#define SET_BANK (__nr,__start,__size) \ mi->bank[__nr].start = (__start), \
@@ -41,3 +42,9 @@ void sa11x0_register_mcp(struct mcp_plat_data *data);struct sa1100fb_mach_info ;void sa11x0_register_lcd (struct sa1100fb_mach_info *inf); + +#ifdef CONFIG_PM +int sa11x0_pm_init (void ); +#else +static inline int sa11x0_pm_init (void ) {return 0 ; } +#endif
arch/arm/mach-sa1100/h3100.c +1 -0
@@ -110,6 +110,7 @@ MACHINE_START(H3100, "Compaq iPAQ H3100") .init_irq = sa1100_init_irq, .timer = &sa1100_timer, .init_machine = h3100_mach_init, + .init_late = sa11x0_init_late, .restart = sa11x0_restart,MACHINE_END
arch/arm/mach-sa1100/h3600.c +1 -0
@@ -160,6 +160,7 @@ MACHINE_START(H3600, "Compaq iPAQ H3600") .init_irq = sa1100_init_irq, .timer = &sa1100_timer, .init_machine = h3600_mach_init, + .init_late = sa11x0_init_late, .restart = sa11x0_restart,MACHINE_END
arch/arm/mach-sa1100/hackkit.c +1 -0
@@ -199,5 +199,6 @@ MACHINE_START(HACKKIT, "HackKit Cpu Board") .init_irq = sa1100_init_irq, .timer = &sa1100_timer, .init_machine = hackkit_init, + .init_late = sa11x0_init_late, .restart = sa11x0_restart,MACHINE_END
arch/arm/mach-sa1100/jornada720.c +1 -0
@@ -348,6 +348,7 @@ MACHINE_START(JORNADA720, "HP Jornada 720") .init_irq = sa1100_init_irq, .timer = &sa1100_timer, .init_machine = jornada720_mach_init, + .init_late = sa11x0_init_late,#ifdef CONFIG_SA1111 .dma_zone_size = SZ_1M,#endif
arch/arm/mach-sa1100/lart.c +1 -0
@@ -147,6 +147,7 @@ MACHINE_START(LART, "LART") .nr_irqs = SA1100_NR_IRQS, .init_irq = sa1100_init_irq, .init_machine = lart_init, + .init_late = sa11x0_init_late, .timer = &sa1100_timer, .restart = sa11x0_restart,MACHINE_END
arch/arm/mach-sa1100/nanoengine.c +1 -0
@@ -112,5 +112,6 @@ MACHINE_START(NANOENGINE, "BSE nanoEngine") .init_irq = sa1100_init_irq, .timer = &sa1100_timer, .init_machine = nanoengine_init, + .init_late = sa11x0_init_late, .restart = sa11x0_restart,MACHINE_END
arch/arm/mach-sa1100/pleb.c +1 -0
@@ -135,5 +135,6 @@ MACHINE_START(PLEB, "PLEB") .init_irq = sa1100_init_irq, .timer = &sa1100_timer, .init_machine = pleb_init, + .init_late = sa11x0_init_late, .restart = sa11x0_restart,MACHINE_END
arch/arm/mach-sa1100/pm.c +1 -3
@@ -117,10 +117,8 @@ static const struct platform_suspend_ops sa11x0_pm_ops = { .valid = suspend_valid_only_mem, }; -static int __init sa11x0_pm_init (void ) +int __init sa11x0_pm_init (void ) {suspend_set_ops (&sa11x0_pm_ops);return 0 ; } - -late_initcall (sa11x0_pm_init);
arch/arm/mach-sa1100/shannon.c +1 -0
@@ -104,5 +104,6 @@ MACHINE_START(SHANNON, "Shannon (AKA: Tuxscreen)") .init_irq = sa1100_init_irq, .timer = &sa1100_timer, .init_machine = shannon_init, + .init_late = sa11x0_init_late, .restart = sa11x0_restart,MACHINE_END
arch/arm/mach-sa1100/simpad.c +1 -0
@@ -395,6 +395,7 @@ MACHINE_START(SIMPAD, "Simpad") .map_io = simpad_map_io, .nr_irqs = SA1100_NR_IRQS, .init_irq = sa1100_init_irq, + .init_late = sa11x0_init_late, .timer = &sa1100_timer, .restart = sa11x0_restart,MACHINE_END
Signature · 1 line
1.7.5.4
PATCH 13/15 ARM: shmobile: use machine specific hook for late init
In reply to Shawn Guo--- arch/arm/mach-shmobile/Makefile | 2 +- arch/arm/mach-shmobile/board-ag5evm.c | 1 + arch/arm/mach-shmobile/board-ap4evb.c | 1 + arch/arm/mach-shmobile/board-bonito.c | 1 + arch/arm/mach-shmobile/board-g3evm.c | 1 + arch/arm/mach-shmobile/board-g4evm.c | 1 + arch/arm/mach-shmobile/board-kota2.c | 1 + arch/arm/mach-shmobile/board-mackerel.c | 1 + arch/arm/mach-shmobile/board-marzen.c | 1 + arch/arm/mach-shmobile/common.c | 24 ++++++++++++++++++++++++ arch/arm/mach-shmobile/cpuidle.c | 3 +-- arch/arm/mach-shmobile/include/mach/common.h | 14 ++++++++++++++ arch/arm/mach-shmobile/suspend.c | 3 +-- 13 files changed, 49 insertions(+), 5 deletions(-) create mode 100644 arch/arm/mach-shmobile/common.c
arch/arm/mach-shmobile/Makefile +1 -1
@@ -3,7 +3,7 @@ # # Common objects -obj-y := timer.o console.o clock.o +obj-y := timer.o console.o clock.o common.o # CPU objects obj-$(CONFIG_ARCH_SH7367) += setup-sh7367.o clock-sh7367.o intc-sh7367.o
arch/arm/mach-shmobile/board-ag5evm.c +1 -0
@@ -598,5 +598,6 @@ MACHINE_START(AG5EVM, "ag5evm") .init_irq = sh73a0_init_irq, .handle_irq = gic_handle_irq, .init_machine = ag5evm_init, + .init_late = shmobile_init_late, .timer = &shmobile_timer,MACHINE_END
arch/arm/mach-shmobile/board-ap4evb.c +1 -0
@@ -1440,5 +1440,6 @@ MACHINE_START(AP4EVB, "ap4evb") .init_irq = sh7372_init_irq, .handle_irq = shmobile_handle_irq_intc, .init_machine = ap4evb_init, + .init_late = shmobile_init_late, .timer = &shmobile_timer,MACHINE_END
arch/arm/mach-shmobile/board-bonito.c +1 -0
@@ -500,5 +500,6 @@ MACHINE_START(BONITO, "bonito") .init_irq = r8a7740_init_irq, .handle_irq = shmobile_handle_irq_intc, .init_machine = bonito_init, + .init_late = shmobile_init_late, .timer = &shmobile_timer,MACHINE_END
arch/arm/mach-shmobile/board-g3evm.c +1 -0
@@ -338,5 +338,6 @@ MACHINE_START(G3EVM, "g3evm") .init_irq = sh7367_init_irq, .handle_irq = shmobile_handle_irq_intc, .init_machine = g3evm_init, + .init_late = shmobile_init_late, .timer = &shmobile_timer,MACHINE_END
arch/arm/mach-shmobile/board-g4evm.c +1 -0
@@ -381,5 +381,6 @@ MACHINE_START(G4EVM, "g4evm") .init_irq = sh7377_init_irq, .handle_irq = shmobile_handle_irq_intc, .init_machine = g4evm_init, + .init_late = shmobile_init_late, .timer = &shmobile_timer,MACHINE_END
arch/arm/mach-shmobile/board-kota2.c +1 -0
@@ -521,5 +521,6 @@ MACHINE_START(KOTA2, "kota2") .init_irq = sh73a0_init_irq, .handle_irq = gic_handle_irq, .init_machine = kota2_init, + .init_late = shmobile_init_late, .timer = &shmobile_timer,MACHINE_END
arch/arm/mach-shmobile/board-mackerel.c +1 -0
@@ -1623,5 +1623,6 @@ MACHINE_START(MACKEREL, "mackerel") .init_irq = sh7372_init_irq, .handle_irq = shmobile_handle_irq_intc, .init_machine = mackerel_init, + .init_late = shmobile_init_late, .timer = &shmobile_timer,MACHINE_END
arch/arm/mach-shmobile/board-marzen.c +1 -0
@@ -98,5 +98,6 @@ MACHINE_START(MARZEN, "marzen") .init_irq = r8a7779_init_irq, .handle_irq = gic_handle_irq, .init_machine = marzen_init, + .init_late = shmobile_init_late, .timer = &shmobile_timer,MACHINE_END
arch/arm/mach-shmobile/common.c new file +24 -0
@@ -0,0 +1,24 @@ +/* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; version 2 of the License. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +* +*/ +#include <linux/kernel.h> +#include <linux/init.h> +#include <mach/common.h> + +void __init shmobile_init_late (void ) +{ +shmobile_suspend_init (); +shmobile_cpuidle_init (); +}
arch/arm/mach-shmobile/cpuidle.c +1 -2
@@ -46,7 +46,7 @@ static struct cpuidle_driver shmobile_cpuidle_driver = {void (*shmobile_cpuidle_setup)(struct cpuidle_driver *drv); -static int shmobile_cpuidle_init (void ) +int shmobile_cpuidle_init (void ) {struct cpuidle_device *dev = &shmobile_cpuidle_dev;struct cpuidle_driver *drv = &shmobile_cpuidle_driver;
@@ -65,4 +65,3 @@ static int shmobile_cpuidle_init(void)return 0 ; } -late_initcall (shmobile_cpuidle_init);
arch/arm/mach-shmobile/include/mach/common.h +14 -0
@@ -83,4 +83,18 @@ 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 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 */
arch/arm/mach-shmobile/suspend.c +1 -2
@@ -39,9 +39,8 @@ struct platform_suspend_ops shmobile_suspend_ops = { .valid = suspend_valid_only_mem, }; -static int __init shmobile_suspend_init (void ) +int __init shmobile_suspend_init (void ) {suspend_set_ops (&shmobile_suspend_ops);return 0 ; } -late_initcall (shmobile_suspend_init);
Signature · 1 line
1.7.5.4
PATCH 14/15 ARM: tegra: use machine specific hook for late init
In reply to Shawn Guo--- arch/arm/mach-tegra/board-dt-tegra20.c | 1 + arch/arm/mach-tegra/board-dt-tegra30.c | 1 + arch/arm/mach-tegra/board-harmony.c | 1 + arch/arm/mach-tegra/board-paz00.c | 1 + arch/arm/mach-tegra/board-seaboard.c | 3 +++ arch/arm/mach-tegra/board-trimslice.c | 1 + arch/arm/mach-tegra/board.h | 14 ++++++++++++++ arch/arm/mach-tegra/clock.c | 3 +-- arch/arm/mach-tegra/common.c | 6 ++++++ arch/arm/mach-tegra/powergate.c | 4 +--- 10 files changed, 30 insertions(+), 5 deletions(-)
arch/arm/mach-tegra/board-dt-tegra20.c +1 -0
@@ -142,6 +142,7 @@ DT_MACHINE_START(TEGRA_DT, "nVidia Tegra20 (Flattened Device Tree)") .handle_irq = gic_handle_irq, .timer = &tegra_timer, .init_machine = tegra_dt_init, + .init_late = tegra_init_late, .restart = tegra_assert_system_reset, .dt_compat = tegra20_dt_board_compat,MACHINE_END
arch/arm/mach-tegra/board-dt-tegra30.c +1 -0
@@ -80,6 +80,7 @@ DT_MACHINE_START(TEGRA30_DT, "NVIDIA Tegra30 (Flattened Device Tree)") .handle_irq = gic_handle_irq, .timer = &tegra_timer, .init_machine = tegra30_dt_init, + .init_late = tegra_init_late, .restart = tegra_assert_system_reset, .dt_compat = tegra30_dt_board_compat,MACHINE_END
arch/arm/mach-tegra/board-harmony.c +1 -0
@@ -191,5 +191,6 @@ MACHINE_START(HARMONY, "harmony") .handle_irq = gic_handle_irq, .timer = &tegra_timer, .init_machine = tegra_harmony_init, + .init_late = tegra_init_late, .restart = tegra_assert_system_reset,MACHINE_END
arch/arm/mach-tegra/board-paz00.c +1 -0
@@ -221,5 +221,6 @@ MACHINE_START(PAZ00, "Toshiba AC100 / Dynabook AZ") .handle_irq = gic_handle_irq, .timer = &tegra_timer, .init_machine = tegra_paz00_init, + .init_late = tegra_init_late, .restart = tegra_assert_system_reset,MACHINE_END
arch/arm/mach-tegra/board-seaboard.c +3 -0
@@ -289,6 +289,7 @@ MACHINE_START(SEABOARD, "seaboard") .handle_irq = gic_handle_irq, .timer = &tegra_timer, .init_machine = tegra_seaboard_init, + .init_late = tegra_init_late, .restart = tegra_assert_system_reset,MACHINE_END
@@ -300,6 +301,7 @@ MACHINE_START(KAEN, "kaen") .handle_irq = gic_handle_irq, .timer = &tegra_timer, .init_machine = tegra_kaen_init, + .init_late = tegra_init_late, .restart = tegra_assert_system_reset,MACHINE_END
@@ -311,5 +313,6 @@ MACHINE_START(WARIO, "wario") .handle_irq = gic_handle_irq, .timer = &tegra_timer, .init_machine = tegra_wario_init, + .init_late = tegra_init_late, .restart = tegra_assert_system_reset,MACHINE_END
arch/arm/mach-tegra/board-trimslice.c +1 -0
@@ -180,5 +180,6 @@ MACHINE_START(TRIMSLICE, "trimslice") .handle_irq = gic_handle_irq, .timer = &tegra_timer, .init_machine = tegra_trimslice_init, + .init_late = tegra_init_late, .restart = tegra_assert_system_reset,MACHINE_END
arch/arm/mach-tegra/board.h +14 -0
@@ -32,5 +32,19 @@ void __init tegra_init_irq(void);void __init tegra_dt_init_irq (void );int __init tegra_pcie_init (bool init_port0,bool init_port1); +void tegra_init_late (void ); + +#ifdef CONFIG_DEBUG_FS +int tegra_clk_debugfs_init (void ); +#else +static inline int tegra_clk_debugfs_init (void ) {return 0 ; } +#endif + +#if defined(CONFIG_ARCH_TEGRA_2x_SOC) && defined(CONFIG_DEBUG_FS ) +int __init tegra_powergate_debugfs_init (void ); +#else +static inline int tegra_powergate_debugfs_init (void ) {return 0 ; } +#endif +extern struct sys_timer tegra_timer;#endif
arch/arm/mach-tegra/clock.c +1 -2
@@ -642,7 +642,7 @@ static int clk_debugfs_register(struct clk *c)return 0 ; } -static int __init clk_debugfs_init (void ) +int __init tegra_clk_debugfs_init (void ) {struct clk *c;struct dentry *d;
@@ -669,5 +669,4 @@ err_out: return err; } -late_initcall (clk_debugfs_init);#endif
arch/arm/mach-tegra/common.c +6 -0
@@ -132,3 +132,9 @@ void __init tegra30_init_early(void) tegra_powergate_init(); }#endif + +void __init tegra_init_late (void ) +{ +tegra_clk_debugfs_init (); +tegra_powergate_debugfs_init (); +}
arch/arm/mach-tegra/powergate.c +1 -3
@@ -234,7 +234,7 @@ static const struct file_operations powergate_fops = { .release = single_release, }; -static int __init powergate_debugfs_init (void ) +int __init tegra_powergate_debugfs_init (void ) {struct dentry *d;int err = -ENOMEM ;
@@ -247,6 +247,4 @@ static int __init powergate_debugfs_init(void) return err; } -late_initcall (powergate_debugfs_init); -#endif
Signature · 1 line
1.7.5.4
PATCH 14/15 ARM: tegra: use machine specific hook for late init
Quoted 4 lines · Shawn Guo
Cc Colin Cross <[email protected]>Cc Olof Johansson <[email protected]>Cc Stephen Warren <[email protected]>Signed-off-by Shawn Guo <[email protected]>
This patch,
This and patch 1,
PATCH 15/15 ARM: ux500: use machine specific hook for late init
In reply to Shawn Guo--- arch/arm/mach-ux500/board-mop500.c | 4 ++++ arch/arm/mach-ux500/clock.c | 6 ++---- arch/arm/mach-ux500/clock.h | 12 ++++++++++++ arch/arm/mach-ux500/cpu.c | 6 ++++++ arch/arm/mach-ux500/include/mach/setup.h | 1 + 5 files changed, 25 insertions(+), 4 deletions(-)
arch/arm/mach-ux500/board-mop500.c +4 -0
@@ -722,6 +722,7 @@ MACHINE_START(U8500, "ST-Ericsson MOP500 platform") .timer = &ux500_timer, .handle_irq = gic_handle_irq, .init_machine = mop500_init_machine, + .init_late = ux500_init_late, MACHINE_ENDMACHINE_START (HREFV60 ,"ST-Ericsson U8500 Platform HREFv60+" )
@@ -731,6 +732,7 @@ MACHINE_START(HREFV60, "ST-Ericsson U8500 Platform HREFv60+") .timer = &ux500_timer, .handle_irq = gic_handle_irq, .init_machine = hrefv60_init_machine, + .init_late = ux500_init_late, MACHINE_ENDMACHINE_START (SNOWBALL ,"Calao Systems Snowball platform" )
@@ -741,6 +743,7 @@ MACHINE_START(SNOWBALL, "Calao Systems Snowball platform") .timer = &ux500_timer, .handle_irq = gic_handle_irq, .init_machine = snowball_init_machine, + .init_late = ux500_init_late, MACHINE_END#ifdef CONFIG_MACH_UX500_DT
@@ -830,6 +833,7 @@ DT_MACHINE_START(U8500_DT, "ST-Ericsson U8500 platform (Device Tree Support)") .timer = &ux500_timer, .handle_irq = gic_handle_irq, .init_machine = u8500_init_machine, + .init_late = ux500_init_late, .dt_compat = u8500_dt_board_compat, MACHINE_END#endif
arch/arm/mach-ux500/clock.c +2 -4
@@ -633,7 +633,7 @@ static int clk_debugfs_register(struct clk *c)return 0 ; } -static int __init clk_debugfs_init (void ) +int __init clk_debugfs_init (void ) {struct clk *c;struct dentry *d;
@@ -655,7 +655,6 @@ err_out: return err; } -late_initcall (clk_debugfs_init);#endif /* defined(CONFIG_DEBUG_FS) */ unsigned long clk_smp_twd_rate =500000000 ;
@@ -694,12 +693,11 @@ static struct notifier_block clk_twd_cpufreq_nb = { .notifier_call = clk_twd_cpufreq_transition, }; -static int clk_init_smp_twd_cpufreq (void ) +int clk_init_smp_twd_cpufreq (void ) {return cpufreq_register_notifier (&clk_twd_cpufreq_nb,CPUFREQ_TRANSITION_NOTIFIER ); } -late_initcall (clk_init_smp_twd_cpufreq);#endif
arch/arm/mach-ux500/clock.h +12 -0
@@ -150,3 +150,15 @@ struct clk clk_##_name = { \int __init clk_db8500_ed_fixup (void );int __init clk_init (void ); + +#ifdef CONFIG_DEBUG_FS +int clk_debugfs_init (void ); +#else +static inline int clk_debugfs_init (void ) {return 0 ; } +#endif + +#ifdef CONFIG_CPU_FREQ +int clk_init_smp_twd_cpufreq (void ); +#else +static inline int clk_init_smp_twd_cpufreq (void ) {return 0 ; } +#endif
arch/arm/mach-ux500/cpu.c +6 -0
@@ -67,6 +67,12 @@ void __init ux500_init_irq(void)clk_init (); } +void __init ux500_init_late (void ) +{ +clk_debugfs_init (); +clk_init_smp_twd_cpufreq (); +} +static const char *__init ux500_get_machine (void ) {return kasprintf (GFP_KERNEL ,"DB%4x" ,dbx500_partnumber ());
arch/arm/mach-ux500/include/mach/setup.h +1 -0
@@ -22,6 +22,7 @@ extern struct device * __init u5500_init_devices(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);
Signature · 1 line
1.7.5.4
PATCH 15/15 ARM: ux500: use machine specific hook for late init
Quoted 3 lines · Shawn Guo
Cc Linus Walleij <[email protected]>Signed-off-by Shawn Guo <[email protected]>Acked-by srinidhi kasagar <[email protected]>
Thanks,
Linus Walleij
PATCH 15/15 ARM: ux500: use machine specific hook for late init
Quoted 8 lines · Linus Walleij
Quoted 3 lines · Shawn Guo
Cc Linus Walleij <[email protected]>Signed-off-by Shawn Guo <[email protected]>Acked-by srinidhi kasagar <[email protected]>Acked-by Linus Walleij <[email protected]>
Tag collected. Thanks, Linus.
Signature · 2 lines
Regards, Shawn
cover arch/arm/mach-* late_initcall cleanup
In reply to Shawn GuoQuoted 6 lines · Shawn Guo
This series tries to clean up those
late_initcallinarch/arm/mach-*, which will be a blocker for single kernel build for multiple platforms. Even on single platform, for example imx, where we already have single kernel image for imx3, imx5 and imx6 families,late_initcalldoes not scale. We have to detect soc type in thelate_initcallto do soc sepcific late initialization.
Hi Shawn,
If you're targetting this at v3.5, I think we should get it into arm-soc as a staging branch to give it some more testing in linux-next ASAP.
If you send me a pull request, I can put it in and then we upgrade it to a proper branch for the next merge window when everyone is happy with it. Until then, you can send add-on patches or replacement pull requests. Most importantly, the first patch needs an Ack from Russell and we should see if there are any serious conflicts of the other patches with stuff in his tree. If so, we should put the branch into both the arm and the arm-soc tree before we send it off to Linus.
On a related note, do you plan to do the same thing for subsys_initcall?
Arnd
cover arch/arm/mach-* late_initcall cleanup
Quoted 8 lines · Arnd Bergmann
Quoted 6 lines · Shawn Guo
This series tries to clean up those
late_initcallinarch/arm/mach-*, which will be a blocker for single kernel build for multiple platforms. Even on single platform, for example imx, where we already have single kernel image for imx3, imx5 and imx6 families,late_initcalldoes not scale. We have to detect soc type in thelate_initcallto do soc sepcific late initialization.
Quoted 5 lines
Hi Shawn,
If you're targetting this at v3.5, I think we should get it into arm-soc as a staging branch to give it some more testing in linux-next ASAP.
Thanks for the reminding, Arnd. Yes, I'm targeting this at v3.5, since the imx cpuidle drivers from Rob Lee which targets at v3.5 depends on it.
Quoted 9 lines
If you send me a pull request, I can put it in and then we upgrade it to a proper branch for the next merge window when everyone is happy with it. Until then, you can send add-on patches or replacement pull requests. Most importantly, the first patch needs an Ack from Russell and we should see if there are any serious conflicts of the other patches with stuff in his tree. If so, we should put the branch into both the arm and the arm-soc tree before we send it off to Linus.
Ok. Will do immediately once I get back from Russell on the first patch.
Quoted 2 lines
On a related note, do you plan to do the same thing for
subsys_initcall?
I was asked by Russell to clean up late_initcall when I was trying to propose some something to help imx cpuidle drivers, so I did not really plan to do the same thing for subsys_initcall. However, since you are asking, I think I can do it. But I would defer it a little bit until we have device tree kill some amount of board files.
Signature · 2 lines
Regards, Shawn
cover arch/arm/mach-* late_initcall cleanup
Quoted 7 lines · Shawn Guo
Quoted 2 lines
On a related note, do you plan to do the same thing for
subsys_initcall?I was asked by Russell to clean up
late_initcallwhen I was trying to propose some something to help imx cpuidle drivers, so I did not really plan to do the same thing forsubsys_initcall. However, since you are asking, I think I can do it. But I would defer it a little bit until we have device tree kill some amount of board files.
Ok, fair enough. I don't see a reason to rush the subsys_initcall conversion, it just felt odd to do it for late_initcall first when there are so many more instances of subsys_initcall in arch/arm. We can also ask the next person who wants to add a subsys_initcall to do that work, so you don't have to do it all by yourself ;-)
Arnd
Tony Lindgren
maintainercover arch/arm/mach-* late_initcall cleanup
In reply to Shawn GuoQuoted 9 lines · Shawn Guo
Quoted 8 lines · Arnd Bergmann
Quoted 6 lines · Shawn Guo
This series tries to clean up those
late_initcallinarch/arm/mach-*, which will be a blocker for single kernel build for multiple platforms. Even on single platform, for example imx, where we already have single kernel image for imx3, imx5 and imx6 families,late_initcalldoes not scale. We have to detect soc type in thelate_initcallto do soc sepcific late initialization.
Quoted 8 lines
Quoted 5 lines
Hi Shawn,
If you're targetting this at v3.5, I think we should get it into arm-soc as a staging branch to give it some more testing in linux-next ASAP.
Thanks for the reminding, Arnd. Yes, I'm targeting this at v3.5, since the imx cpuidle drivers from Rob Lee which targets at v3.5 depends on it.
Sorro for being late in responding, these look good to me. For the omap parts:
Also ack to merge without my ack added for being late ;)
Tony
cover arch/arm/mach-* late_initcall cleanup
Quoted 5 lines · Tony Lindgren
Sorro for being late in responding, these look good to me. For the omap parts:
Acked-by Tony Lindgren <[email protected]>
Thanks, Tony.
Quoted 2 lines
Also ack to merge without my ack added for being late ;)
It has not been merged yet. We are just trying to get it into linux-next for testing. Your ack has never been late, and I just added it.
Signature · 2 lines
Regards, Shawn