ARM: tegra: skip gic_arch_extn setup if DT has a LIC node
authorMarc Zyngier <marc.zyngier@arm.com>
Wed, 11 Mar 2015 15:43:00 +0000 (15:43 +0000)
committerJason Cooper <jason@lakedaemon.net>
Sun, 15 Mar 2015 00:40:39 +0000 (00:40 +0000)
If we detect that our DT has a LIC node, don't setup gic_arch_extn,
and skip tegra_legacy_irq_syscore_init as well.

This is only a temporary measure until that code is removed for good.

Acked-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Link: https://lkml.kernel.org/r/1426088583-15097-4-git-send-email-marc.zyngier@arm.com
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
arch/arm/mach-tegra/irq.c
arch/arm/mach-tegra/tegra.c

index 7f87a5047140dc32763b6271fbebec188cbde254..1593c4c8b7f0d96ea0ad1b741e2a6bb87dde794c 100644 (file)
@@ -255,11 +255,22 @@ static void tegra114_gic_cpu_pm_registration(void)
 static void tegra114_gic_cpu_pm_registration(void) { }
 #endif
 
+static const struct of_device_id tegra_ictlr_match[] __initconst = {
+       { .compatible = "nvidia,tegra20-ictlr" },
+       { .compatible = "nvidia,tegra30-ictlr" },
+       { }
+};
+
 void __init tegra_init_irq(void)
 {
        int i;
        void __iomem *distbase;
 
+       if (of_find_matching_node(NULL, tegra_ictlr_match))
+               goto skip_extn_setup;
+
+       tegra_legacy_irq_syscore_init();
+
        distbase = IO_ADDRESS(TEGRA_ARM_INT_DIST_BASE);
        num_ictlrs = readl_relaxed(distbase + GIC_DIST_CTR) & 0x1f;
 
@@ -283,5 +294,6 @@ void __init tegra_init_irq(void)
        gic_arch_extn.irq_set_wake = tegra_set_wake;
        gic_arch_extn.flags = IRQCHIP_MASK_ON_SUSPEND;
 
+skip_extn_setup:
        tegra114_gic_cpu_pm_registration();
 }
index 914341bcef25faf08631113ce98b90228d728d9a..861d88486dbec233d4ab52a42af4f666ab48ba7c 100644 (file)
@@ -82,7 +82,6 @@ static void __init tegra_dt_init_irq(void)
 {
        tegra_init_irq();
        irqchip_init();
-       tegra_legacy_irq_syscore_init();
 }
 
 static void __init tegra_dt_init(void)