ARM: tegra: skip gic_arch_extn setup if DT has a LIC node
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>
This commit is contained in:
parent
de3ce08049
commit
e9479e0e83
2 changed files with 12 additions and 1 deletions
|
@ -255,11 +255,22 @@ static void tegra114_gic_cpu_pm_registration(void)
|
||||||
static void tegra114_gic_cpu_pm_registration(void) { }
|
static void tegra114_gic_cpu_pm_registration(void) { }
|
||||||
#endif
|
#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)
|
void __init tegra_init_irq(void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
void __iomem *distbase;
|
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);
|
distbase = IO_ADDRESS(TEGRA_ARM_INT_DIST_BASE);
|
||||||
num_ictlrs = readl_relaxed(distbase + GIC_DIST_CTR) & 0x1f;
|
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.irq_set_wake = tegra_set_wake;
|
||||||
gic_arch_extn.flags = IRQCHIP_MASK_ON_SUSPEND;
|
gic_arch_extn.flags = IRQCHIP_MASK_ON_SUSPEND;
|
||||||
|
|
||||||
|
skip_extn_setup:
|
||||||
tegra114_gic_cpu_pm_registration();
|
tegra114_gic_cpu_pm_registration();
|
||||||
}
|
}
|
||||||
|
|
|
@ -82,7 +82,6 @@ static void __init tegra_dt_init_irq(void)
|
||||||
{
|
{
|
||||||
tegra_init_irq();
|
tegra_init_irq();
|
||||||
irqchip_init();
|
irqchip_init();
|
||||||
tegra_legacy_irq_syscore_init();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __init tegra_dt_init(void)
|
static void __init tegra_dt_init(void)
|
||||||
|
|
Loading…
Reference in a new issue