The of_irq_init function would be setup to invoke the exynos4_init_irq_eint function when booting using device tree. The arch_initcall for exynos4_init_irq_eint would duplicate its invocation in that case. Hence, arch_initcall for exynos4_init_irq_eint is removed and this function is invoked from the exynos4_init_irq for non-dt case. Moreover, with single kernel image build, the exynos4_init_irq_eint has no checks to ensure that it is running on a exynos4 platform. So it would be appropriate to invoke it from exynos4_init_irq. Signed-off-by: Thomas Abraham <thomas.abraham@xxxxxxxxxx> Acked-by: Rob Herring <rob.herring@xxxxxxxxxxx> --- arch/arm/mach-exynos/common.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/arch/arm/mach-exynos/common.c b/arch/arm/mach-exynos/common.c index 0d69412..544f8b5 100644 --- a/arch/arm/mach-exynos/common.c +++ b/arch/arm/mach-exynos/common.c @@ -64,6 +64,7 @@ static void exynos4_init_clocks(int xtal); static void exynos5_init_clocks(int xtal); static void exynos_init_uarts(struct s3c2410_uartcfg *cfg, int no); static int exynos_init(void); +static int exynos_init_irq_eint(void); static struct cpu_table cpu_ids[] __initdata = { { @@ -614,6 +615,7 @@ void __init exynos4_init_irq(void) * uses GIC instead of VIC. */ s5p_init_irq(NULL, 0); + exynos_init_irq_eint(); } void __init exynos5_init_irq(void) @@ -627,6 +629,7 @@ void __init exynos5_init_irq(void) * uses GIC instead of VIC. */ s5p_init_irq(NULL, 0); + exynos_init_irq_eint(); } struct bus_type exynos_subsys = { @@ -1041,4 +1044,3 @@ static int __init exynos_init_irq_eint(void) return 0; } -arch_initcall(exynos_init_irq_eint); -- 1.7.5.4 -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html