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> --- 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 ed50185..888e703 100644 --- a/arch/arm/mach-exynos/common.c +++ b/arch/arm/mach-exynos/common.c @@ -81,6 +81,8 @@ static struct cpu_table cpu_ids[] __initdata = { }, }; +static int exynos4_init_irq_eint(void); + /* Initial IO mappings */ static struct map_desc exynos_iodesc[] __initdata = { @@ -485,6 +487,7 @@ void __init exynos4_init_irq(void) * uses GIC instead of VIC. */ s5p_init_irq(NULL, 0); + exynos4_init_irq_eint(); } struct bus_type exynos4_subsys = { @@ -775,4 +778,3 @@ static int __init exynos4_init_irq_eint(void) irq_set_handler_data(IRQ_EINT16_31, &eint_data); return 0; } -arch_initcall(exynos4_init_irq_eint); -- 1.6.6.rc2 -- 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